• 定点数原码二位乘法


    如果一直都是一位的乘法的话,很多时候会很慢我们需要加快进度来进行乘法。

    假设乘数和被乘数都用原码表示。原码的话,永远需要当成一个正数。

    两位乘数有4种可能组合,每种组合对应以下操作。

    00 相当于0*X。部分积右移两位即可X

    01 相当于1*X。部分积加X然后右移两位即可

    10 相当于2*X。部分积加2X然后右移两位即可

    11 相当于3*X。部分积加3X然后右移两位即可

    我们加X直接加就行,2X也就是将X左移一位再相加即可。

    但是我们3X不可以一步到位我们需要将3X转换成4X-X这样的形式。在这一步我们只进行-X的操作然后在下一步操作中由于部分积已经进行了右移两位的操作所以我们只需要进行加X即可以相当于加4X的操作。所以我们需要找一个触发器C来记录这个4X是否欠下了当欠下了C置为1反之为0。

    具体规则如图:

    例题:

    X=0.100111,Y=0.100111 则:[-X]补=1.011001  求X*Y

                          部分积                          乘数                               欠位C

                    000.000000                      1001 11                               0

    +[-X]补111.011001

                     111.011001

    右移两位   111.110110                     0110 01                              1

    +2X           001.001110

                     001.000100

    右移两位  000.010001                      0001 10                              0

    +2X          001.001110

                     001.011111

    右移两位  000.101111                      110001                               0

    这样就结束了最终结果为  X·Y=0.010111110001

    如果最后一次操作欠下+4X,则最后一次右移2位后还需补充+X操作,+X后不再移位 。

  • 相关阅读:
    dubbo从入门到精通
    Springboot 集成kafka
    python云端开发入门
    RabbitMQ怎么保证可靠性
    AI时代中小企业算力需求爆发,惠普发布新品战99 Monster满血高算工作站
    从0开始编写SD卡底层驱动代码(适用于任何单片机的通用代码)
    燃气仓储革命:数字孪生系统领航未来
    5个实用的性能测试工具(软件测试工程师必备)
    深度解析字节跳动开源数据集成引擎 BitSail
    C和C++区别联系
  • 原文地址:https://blog.csdn.net/m0_53345417/article/details/127041523