补码一位乘

一、原码一位乘和补码一位乘对比


原码一位乘补码一位乘
进行n轮加法、移位进行n轮加法、移位,最后再多来一次加法
每次加法可能加0,+[|x|]原每次加法可能+0、+[x]补、+[-x]补
每次移位是“逻辑右移”每次移位是“补码的算数右移”
符号位不参与运算符号位参与运算
① 硬件构成多了辅助位,MQ共n+2位
② 寄存器中都统一用n+2位,因此采用双符号位补码运算
③ 会有一个辅助电路实现[-x]补的转换

二、补码一位乘(手算模拟)


1、例题

设机器字长为5位(含1位符号位,n=4),×=-0.1101, y= +0.1011,采用Booth算法求x*y


[x]补=11.0011, [-x]补=00.1101, [y]补=0.1011
注意:正数的补码仍然是正数。


在这里插入图片描述


[x*y]补 = 11.01110001

所以x*y = -0.10001111

2、n轮加法、算数右移,加法规则如下

辅助位 - MQ中“最低位”=1时,(ACC)+[x]补
辅助位 - MQ中“最低位”=0时,(ACC)+0
辅助位 - MQ中“最低位”=-1时,(ACC)+[-x]补


3、补码的算数右移

符号位不动,数值位右移,正数右移补o,
负数右移补1(符号位是啥就补啥)


三、课后练习题

用补码一位乘计算X*Y

X = -0.11010,Y = -0.01110
请添加图片描述

注:原码一位乘和补码一位乘的计算结果是一样的

  • 8
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值