二进制除法运算(原码)
…
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
★被除数(余数)-除数时,可能产生负余数,
对负余数有两种不同的处理方法。
★依据对负余数的处理方法,对应有两种除法
运算方法:
●恢复余数法
●不恢复余数法(加减交替法)(常用)
★两个原码数相除,其商的符号为两数符号的
异或值,数值则为两数绝对值相除后的结果。
2
2
一、原码恢复余数法
★每一步须比较上一步的余数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
●-Y用+[-Y]补实现。
★改进:
●笔算时,是余数不动,除数逐次右移;机器运算时,
改为除数不动,余数逐次左移。
●左移出界的余数的高位都是无用的零,对运算不会
产生任何影响。
●由于每次所得的余数都多乘了21,在求得小数点后的
n位商后,相当于多乘了2n,所以,正确的余数应为
2-。
4
4
例: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
练习: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
例:X=+,Y=-,计算X÷Y的商和余数。
R为负,商上0
+[-|Y|]补
左移1位
+|Y|补
左移1位
+[-|Y|]补
解:|X|原=,|Y|补=,[-|Y|]补=
R为正,商上1
R为正,商上1
R为负,商上0
左移1位
+[-|Y|]补
左移1位
+|Y|补
R为正,商上1
∵ 0 1=1
∴商=-
第03章34二进制除法运算ppt课件 来自淘豆网m.daumloan.com转载请标明出处.