第03章 3.4 二进制除法运算.ppt 二进制除法运算(原码)
…
0 R0
- 1 -2-
10 R1
- 11 -2-
110 R2
- 011 -2-
0110 R3
……
例: X=,Y=,人工计算X/Y。
●每一步都要比较
余数Ri-1与-2-
大小。
注意:
●若Ri-1-2-≥0,
表示够减,商为1;
反之,商为0。
1
1/12
★被除数(余数)-除数时,可能产生负余数,
对负余数有两种不同的处理方法。
★依据对负余数的处理方法,对应有两种除法
运算方法:
●恢复余数法
●不恢复余数法(加减交替法)(常用)
★两个原码数相除,其商的符号为两数符号的
异或值,数值则为两数绝对值相除后的结果。
2
2/12
一、原码恢复余数法
★每一步须比较上一步的余数Ri-1和2-iY的大小,
人工计算时计算者可用观察比较的办法确定商
上0还是1,而在计算机中,只能用做减法判断
结果的符号为负还是为正来确定。
●若Ri-1-2-≥0,则上商1,差值即为余数Ri;
●若Ri-1-2-<0,则上商0,差值并不是余数Ri,
要恢复Ri为上一步的余数Ri-1,即Ri+2-。
3
3/12
●-Y用+[-Y]补实现。
★改进:
●笔算时,是余数不动,除数逐次右移;机器运算时,
改为除数不动,余数逐次左移。
●左移出界的余数的高位都是无用的零,对运算不会
产生任何影响。
●由于每次所得的余数都多乘了21,在求得小数点后的
n位商后,相当于多乘了2n,所以,正确的余数应为
2-。
4
4/12
例:X=,Y=,计算X÷Y的商和余数。
R为负,商上0
+[-|Y|]补
+[|Y|]补
左移1位
+[-|Y|]补
左移1位
+[-|Y|]补
解:|X|原=,|Y|补=,[-|Y|]补=
恢复余数
R为正,商上1
R为正,商上1
R为负,商上0
左移1位
+[-|Y|]补
+[|Y|]补
左移1位
+[-|Y|]补
恢复余数
R为正,商上1
∵ 0 0=0
∴商=
余数=×2-4
5
5/12
练习:X=+,Y=-,计算X÷Y的商和余数。
R为负,商上0
+[-|Y|]补
+[|Y|]补
左移1位
+[-|Y|]补
左移1位
+[-|Y|]补
解:|X|原=,|Y|补=,[-|Y|]补=
恢复余数
R为正,商上1
R为正,商上1
R为负,商上0
左移1位
+[-|Y|]补
+[|Y|]补
左移1位
+[-|Y|]补
恢复余数
R为正,商上1
∵ 0 1=1
∴商=-
余数=×2-4
6
6/12
二、原码不恢复余数法(加减交替法)
★恢复余数法的缺点是:当某一次-Y的差值为
负时,要多一次+Y恢复余数的操作,降低了
执行速度,又使控制线路变得复杂,因此在
计算机中很少采用。
★加减交替法是对恢复余数除法的一种修正。
当某次求得的差值(余数Ri)为负时,不恢复,
而是继续求下一位商,并在求商的同时暗中
恢复余数。
7
7/12
★运算规则:
●本次余数Ri为正时,商上1,余数左移一位,
下一步减除数求得新余数Ri+1;
●本次余数Ri为负时,商上0,余数左移一位,
下一步加除数求得新余数Ri+1。
Ri+1=2(Ri+|Y|)-|Y|
=2Ri+|Y|
●但若最后一次上商为0,而又需得到正确余数,
则在
第03章 3.4 二进制除法运算 来自淘豆网m.daumloan.com转载请标明出处.