Bootstrap

2.4 二进制除法运算(加减交替法)

2.4.2 加减交替法

        加减交替法与恢复余数法的区别在于当上商0后的处理办法。

步骤:

①第一步,被除数+[-Y]补

②若和为正,上商1,左移1位后-Y

③若和为负,上商0,左移1位后+Y

④重复上述步骤直到运算完毕,重复次数取决于商的位数。

⑤若最后一次的余数为负数,需要恢复余数,即+Y,不用左移了。

结合例题:

【例】用原码一位除恢复余数法计算X/Y 。X=0.1011,Y=0.1101
————————————————————————————————————————————————————————————————————————————————
y* = 0.1101    [-y*]补 = 1.0011 
 
被除数(余数)    商(Q)    说明
--------------------------------------------------------------------------------
    0.1011    0.0000    初始状态    +[-y*]补
   +1.0011               +[-y*]补
 —————————————------------------------------------------------------------------
    1.1110       0      余数为负,上商0;
    1.1100       0_     余数和商左移1位
   +0.1101               +y*         
 —————————————------------------------------------------------------------------
    0.1001       01     余数为正,上商1; 
    1.0010      01_     余数和商左移1位
   +1.0011              +[-y*]补
 —————————————------------------------------------------------------------------
    0.0101      011     余数为正,上商1;
    0.1010      011_    余数和商左移1位
   +1.0011              +[-y*]补
 —————————————------------------------------------------------------------------
    1.1101      0110    余数为负数,上商0;
    1.1010     0110_    余数和商左移1位           
   +0.1101              +y*
 —————————————------------------------------------------------------------------
    0.0111     01101    余数为正,上商1;
--------------------------------------------------------------------------------
 
    商的符号位为0 ⊕ 0=0,故X/Y=0.1101,余数为0.0111*2-4

;