《第03章34二进制除法运算.ppt》由会员分享,可在线阅读,更多相关《第03章34二进制除法运算.ppt(12页珍藏版)》请在优知文库上搜索。
1、1/1213.4 3.4 二进制除法运算(原码)二进制除法运算(原码)0.1110.1110.1011 0.1010 0.1011 0.1010 0 0 R R0 0 -0.0101 1-0.0101 1 -2-2-1.-1.Y Y 0.0100 10.0100 10 0 R R1 1 -0.0010 11 -2-0.0010 11 -2-2.-2.Y Y 0.0001 110.0001 110 R0 R2 2 -0.0001 011 -2 -0.0001 011 -2-3.-3.Y Y 0.0000 0110.0000 0110 R0 R3 3 例:例:X X0.10100.1010,Y Y
2、0.10110.1011,人工计算,人工计算X/YX/Y。每一步都要比较每一步都要比较 余数余数Ri-1与与-2-i.Y的的 大小。大小。注意:注意:若若Ri-12-i.Y0,表示够减,商为表示够减,商为1;反之,商为反之,商为0。2/122 被除数被除数(余数余数)除数时,可能产生除数时,可能产生负余数负余数,对负余数有两种不同的处理方法。对负余数有两种不同的处理方法。依据对负余数的处理方法,对应有两种除法依据对负余数的处理方法,对应有两种除法 运算方法:运算方法:恢复余数法恢复余数法 不恢复余数法不恢复余数法(加减交替法加减交替法)(常用常用)两个原码数相除,其商的符号为两数符号的两个原码
3、数相除,其商的符号为两数符号的 异或值,数值则为两数绝对值相除后的结果。异或值,数值则为两数绝对值相除后的结果。3/123一、原码恢复余数法一、原码恢复余数法 每一步须比较上一步的余数每一步须比较上一步的余数Ri-1和和2-iY的大小,的大小,人工计算时计算者可用观察比较的办法确定商人工计算时计算者可用观察比较的办法确定商 上上0还是还是1,而在计算机中,只能用做减法判断,而在计算机中,只能用做减法判断 结果的符号为负还是为正来确定。结果的符号为负还是为正来确定。若若Ri-12-i.Y0,则上商,则上商1,差值即为余数,差值即为余数Ri;若若Ri-12-i.Y0,则上商,则上商0,差值并不是余
4、数,差值并不是余数Ri,要恢复要恢复Ri为上一步的余数为上一步的余数Ri-1,即,即Ri2-i.Y。4/124 Y用用Y补补实现。实现。改进:改进:笔算时,是余数不动,除数逐次右移;机器运算时,笔算时,是余数不动,除数逐次右移;机器运算时,改为除数不动,余数逐次左移。改为除数不动,余数逐次左移。左移出界的余数的高位都是无用的零,对运算不会左移出界的余数的高位都是无用的零,对运算不会 产生任何影响。产生任何影响。由于每次所得的余数都多乘了由于每次所得的余数都多乘了21,在求得小数点后的,在求得小数点后的 n位商后,相当于多乘了位商后,相当于多乘了2n,所以,正确的余数应为,所以,正确的余数应为
5、2-n.Rn。5/125例:例:X X0.10110.1011,Y Y0.11010.1101,计算,计算X XY Y的商和余数。的商和余数。R为负为负,商上商上0 00.1011 00.1011+-|Y|+-|Y|补补 11.001111.0011 11.111011.1110 +|Y|+|Y|补补 00.110100.1101 1 100.101100.1011 左移左移1 1位位 01.011001.0110+-|Y|+-|Y|补补 11.001111.0011 1 100.100100.1001左移左移1 1位位 01.001001.0010+-|Y|+-|Y|补补 11.001111
6、.0011 1 100.010100.0101解:解:|X|X|原原00.101100.1011,|Y|Y|补补00.110100.1101,-|Y|-|Y|补补11.001111.0011恢复余数恢复余数R为正为正,商上商上1R为正为正,商上商上1R为负为负,商上商上0左移左移1 1位位 00.101000.1010+-|Y|+-|Y|补补 11.001111.0011 11.110111.1101+|Y|+|Y|补补 00.110100.1101 1 100.101000.1010左移左移1 1位位 01.010001.0100+-|Y|+-|Y|补补 11.001111.0011 1 1
7、00.011100.0111恢复余数恢复余数R为正为正,商上商上1 0 00 00 0 商商=0.1101=0.1101余数余数=0.0111=0.01112 2-4-40.11010.11016/126练习:练习:X X0.10010.1001,Y Y0.10110.1011,计算,计算X XY Y的商和余数。的商和余数。R为负为负,商上商上0 0.1011 00.1001 0.1011 00.1001+-|Y|+-|Y|补补 11.010111.0101 11.1110 11.1110 +|Y|+|Y|补补 00.101100.1011 1 100.100100.1001 左移左移1 1位
8、位 01.001001.0010+-|Y|+-|Y|补补 11.010111.0101 1 100.011100.0111左移左移1 1位位 00.111000.1110+-|Y|+-|Y|补补 11.010111.0101 1 100.001100.0011解:解:|X|X|原原00.100100.1001,|Y|Y|补补00.101100.1011,-|Y|-|Y|补补11.010111.0101恢复余数恢复余数R为正为正,商上商上1R为正为正,商上商上1R为负为负,商上商上0左移左移1 1位位 00.011000.0110+-|Y|+-|Y|补补 11.010111.0101 11.11
9、0111.1101+|Y|+|Y|补补 00.101100.1011 1 100.011000.0110左移左移1 1位位 00.110000.1100+-|Y|+-|Y|补补 11.010111.0101 1 100.000100.0001恢复余数恢复余数R为正为正,商上商上1 0 10 11 1 商商=0.11010.1101余数余数=0.0001=0.00012 2-4-40.11010.11017/127二、原码不恢复余数法(加减交替法)二、原码不恢复余数法(加减交替法)恢复余数法的缺点是:恢复余数法的缺点是:当某一次当某一次-Y的差值为的差值为 负时,要多一次负时,要多一次+Y恢复余
10、数的操作,降低了恢复余数的操作,降低了 执行速度,又使控制线路变得复杂,因此在执行速度,又使控制线路变得复杂,因此在 计算机中很少采用。计算机中很少采用。加减交替法是对恢复余数除法的一种修正。加减交替法是对恢复余数除法的一种修正。当某次求得的差值当某次求得的差值(余数余数Ri)为负时,不恢复,为负时,不恢复,而是继续求下一位商,并在求商的同时暗中而是继续求下一位商,并在求商的同时暗中 恢复余数。恢复余数。8/128 运算规则:运算规则:本次余数本次余数Ri为正时,商上为正时,商上1,余数左移一位,余数左移一位,下一步减除数求得新余数下一步减除数求得新余数Ri+1;本次余数本次余数Ri为负时,商
11、上为负时,商上0,余数左移一位,余数左移一位,下一步加除数求得新余数下一步加除数求得新余数Ri+1。R Ri+1i+12 2(R Ri i|Y|Y|)|Y|Y|2R2Ri i|Y|Y|但若最后一次上商为但若最后一次上商为0,而又需得到正确余数,而又需得到正确余数,则在这最后一次仍需则在这最后一次仍需|Y|Y|恢复余数。恢复余数。9/129例:例:X X0.10010.1001,Y Y0.10110.1011,计算,计算X XY Y的商和余数。的商和余数。R为负为负,商上商上0 0.1011 00.1001 0.1011 00.1001+-|Y|+-|Y|补补 11.010111.0101 11
12、.1110 11.1110 左移左移1 1位位 11.110011.1100+|Y|+|Y|补补 00.101100.1011 1 100.011100.0111左移左移1 1位位 00.111000.1110+-|Y|+-|Y|补补 11.010111.0101 1 100.001100.0011解:解:|X|X|原原00.100100.1001,|Y|Y|补补00.101100.1011,-|Y|-|Y|补补11.010111.0101R为正为正,商上商上1R为正为正,商上商上1R为负为负,商上商上0左移左移1 1位位 00.011000.0110+-|Y|+-|Y|补补 11.01011
13、1.0101 11.101111.1011左移左移1 1位位 11.011011.0110+|Y|+|Y|补补 00.101100.1011 1 100.000100.0001R为正为正,商上商上1 0 10 11 1 商商=0.11010.1101余数余数=0.0001=0.00012 2-4-40.11010.110110/1210练习:练习:X X0.10110.1011,Y Y0.11010.1101,计算,计算X XY Y的商和余数。的商和余数。R为负为负,商上商上0 00.1011 00.1011+-|Y|+-|Y|补补 11.001111.0011 11.111011.1110
14、左移左移1 1位位 11.110011.1100+|Y|+|Y|补补 00.110100.1101 1 100.100100.1001左移左移1 1位位 01.001001.0010+-|Y|+-|Y|补补 11.001111.0011 1 100.010100.0101解:解:|X|X|原原00.101100.1011,|Y|Y|补补00.110100.1101,-|Y|-|Y|补补11.001111.0011R为正为正,商上商上1R为正为正,商上商上1R为负为负,商上商上0左移左移1 1位位 00.101000.1010+-|Y|+-|Y|补补 11.001111.0011 11.1101
15、11.1101左移左移1 1位位 11.101011.1010+|Y|+|Y|补补 00.110100.1101 1 100.011100.0111R为正为正,商上商上1 0 10 11 1 商商=0.11010.1101余数余数=0.0111=0.01112 2-4-40.11010.110111/1211练习:练习:X X0.10110.1011,Y Y0.11010.1101,计算,计算X XY Y的商和余数。的商和余数。R为负为负,商上商上0 00.1011 00.1011+-|Y|+-|Y|补补 11.001111.0011 11.111011.1110 左移左移1 1位位 11.1
16、10011.1100+|Y|+|Y|补补 00.110100.1101 1 100.100100.1001左移左移1 1位位 01.001001.0010+-|Y|+-|Y|补补 11.001111.0011 1 100.010100.0101解:解:|X|X|原原00.101100.1011,|Y|Y|补补00.110100.1101,-|Y|-|Y|补补11.001111.0011R为正为正,商上商上1R为正为正,商上商上1R为负为负,商上商上0左移左移1 1位位 00.101000.1010+-|Y|+-|Y|补补 11.001111.0011 11.110111.1101左移左移1 1位位 11.101011.1010+|Y|+|Y|补补 00.110100.1101 1 100.011100.0111R为正为正,商上商上1 1 01 01 1 商商=0.11010.1101余数余数=0.01110.01112 2-4-40.11010.110112/1212 注意:注意:对定点小数除法,约定被除数要小于除数,防止溢出。对定点小数除法,约定被除数要小于除数,防止溢出。商的符号为