补码的除法运算

补码的除法运算是将两个数都使用补码的形式来进行计算,和原码的除法相比,补码的除法运算中被除数,除数以及余数都采用双符号位的形式参与计算,最后得到的余数符号位就代表着最终结果的符号位.

加减交替法

题目:假设机器字长为5位,x=+0.1000,y=-0.1011,采用补码交替法求x/y?

  • 首先通过题目计算出x的补码还有y的补码和-y的补码.都采用双符号位表示
  • x(补)=00.1000,y(补)=11.0101,(-y)(补)=00.1011

首先判端被除数x(补)与除数y(补)是同号还是异号.如果是同号,就要减去y(补).如果是异号就要加上y(补).

算出的余数再与除数y(补)进行比较:

  • 如果是同号,商上1,向左移动一位,再减去y(补),减去y(补)就相当于加上(-y)(补)
  • 如果是异号,商上0,向左移动一位,再加上y(补)

详细计算过程如下:

在这里插入图片描述

  • x(补)=00.1000,除数y(补)=11.0101.两个数是异号.因此使用x(补)+y(补)=11.1101
  • 11.1101继续与y(补)对比,发现是同号.商上1,余数11.1101向左移动一位,再加上(-y)(补)结果为00.0101
  • 余数00.0101继续与y(补)对比,发现是异号.商上0.此时商为10.余数00.0101向左移动一位,再加上(y)(补)结果为11.1111
  • 余数11.1111继续与y(补)对比,发现是同号.商上1.此时商为101.余数11.1111向左移动一位,再加上(-y)(补)结果为00.1001
  • 余数00.1001继续与y(补)对比,发现是异号.商上0.此时商为1010.余数00.1001向左移动一位,再加上(y)(补)结果为00.0111
  • 照理说走到此步时,余数00.0111与y(补)异号,商的最后一位(机器字长规定为5位)应该上0才对,但由于补码的加减交替法规定最后一位的商恒为1

最后得出的商为10101,余数为00.0111.余数的符号位直接标识了最终的结果也为正数.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值