计算机组成原理中补码一位除方法解读

补码除法,主要需要解决三个问题:1.确定上商;2.新余数形成方式;3.确定商符

其实,上商与新余数的形成是统一的,要确,上商0还是1,就是要比较被除数和除数绝对值的大小。当被除数的绝对值大于除数的绝对值,那么,在被除数和除数同号的情况下,商为正。这样,商的补码与原码应该是相同的,所以在够减的情况下,商上1,而在被除数和除数异号的情况下,商为负。这样,商的补码与原码,在从低位往高位看,找到第一个1时,在1和1的右边部分,与原码相同,在1的左边,与原码相反,但此时,商并没有确定,所以不好确定此刻的上商在1的左边还是右边,因此,约定商的最末位采用恒置1的方式上商,这样,商的最末尾为1,那么现在上的每一位商都在1的左边,也就是商的补码与原码是相反的。所以,在够减的情况下,补码上0,不够减上1。所以,上商规则是被除数与除数同号,够减上1,不够减上0,在被除数与除数异号的情况下,够减上0,不够减上1.下面我们来归纳被除数与除数够减与不够减的情况:

够减<=>|被除数|>|除数|(a表示被除数,b表示除数)

下面分a,b分别为正,为负四种情况讨论:

(1)a>0,b>0,则|a|>|b|<=>a>b<=>a-b>0

结论:a-b与b同号,够减。

(2)a<0,b<0,则|a|>|b|<=>-a>-b<=>a-b<0

结论:a-b与b同号,够减。

即在a,b同号的情况下,当a-b与b同号,够减,当a-b与b异号时,不够减。

(3)a<0,b>0,则|a|>|b|<=>-a>b<=>a+b<0

结论:a+b与b异号,够减。

(4)a>0,b<0,则|a|>|b|<=>a>-b<=>a+b>0

结论:a+b与b异号,够减。

即在a,b异号的情况下,当a+b与b异号,够减,当a+b与b同号时,不够减。

再结合上面上商规则,则有下面结论:

当a,b同号时,当a-b与b同号,上商1

当a,b同号时,当a-b与b异号,上商0

当a,b异号时,当a+b与b异号,上商0

当a,b异号时,当a+b与b同号,上商1。

下面分上述四种情况来讨论新余数的形成方法:

(1)a,b同号,a-b与b同号,上商1

因为这种情况够减,所以新余数为上一次余数左移一位,再减去b,即2Ri-b(Ri为上次余数)

(2)a,b同号,a-b与b异号,上商0

因为这种情况不够减,所以要恢复余数,而原来余数是由Ri-b得到的,所以恢复时,应该是Ri+b,再左移一位,即2*(Ri+b),再因为恢复余数后,余数与除数同号,所以,通过减法比较大小,即2*(Ri+b)-b=2*Ri+b

(3)a,b异号,a+b与b异号,上商0

因为这种情况够减,所以新余数为上一次余数左移一位,而a,b异号,所以新余数与除数相加比较绝对值大小,即2Ri+b

(4)a,b异号,a+b与b同号,上商1。

因为这种情况不够减,所以要恢复余数,而原来余数是由Ri+b得到的,所以恢复时,应该是Ri-b,再左移一位,即2*(Ri-b),再因为恢复余数后,余数与除数异号,所以,通过加法比较大小,即2*(Ri-b)+b=2*Ri-b。

最后,将上商情况与新余数形成方法总结,结论如下:

商上1,则新余数为2*Ri-b

商上0,则新余数为2*Ri+b

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值