补码除法

与补码乘法类似,也可以用补码直接完成除法运算,即用 [X] /[Y] 直接求得[X/Y] 。补码除法的规则比原码除法的规则复杂一些。当除数和被除数用补表示时,判别是否够除,就不再是简单地用被除数(余数)减去除数,而是要比较它们的绝对值的大小。因此,若二数同符号,要用减法,若异号,则要用加法,请注意,这样求出来的商是反码形式的。
我们不准备对此进行更多地讨论,可以给出其运算规则如下:
  (1) 开始时,求第一位商,如果被除数与除数同号, 用被除数减去除数,若二数异号,则用被除数加上除数的办法处理。
  (2) 运算过程中确定商的值,若余数与除数同号,上商1,左移一位后下次用余数减除数操作求商,若余数与除数异号,上商0,左移一位后下次用余数加除数操作求商。
  (3) 商的符号,是在第一次求商试算时求出的,若定点除不溢出,得到的就是正确的符号位的值。
  (4) 商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为 | 2-n |。

  若对商的精度要求较高,可对n位数求商n+1次,按得到的不同结果对商进行修正。当商为负时,要在商的最低一位加1,从反码的结果得到商的正确的补码值。

  下面给出补码除法执行运算过程的一个实例。
  假定 [X] =1 0111 , [Y] = 0 1101, 则 [-Y] = 1 0011



  再求下去,可得下一位商并舍入;也可以不执行最后一步求商操作,而直接用在最低位上商1来结束除运算过程。

  除法运算也有快速除运算的各种方案,如一次求得1位或多位商的跳0跳1法,专用的高速除法装置,用快速乘法器完成快速除运算等。由于在程序中,除法指令的使用频度不高,因此一般机器中较少采用快速除法方案。
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值