定点数原码二位乘法

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

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

两位乘数有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后不再移位 。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用编程写诗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值