《第03章34二进制除法运算.ppt》由会员分享,可在线阅读,更多相关《第03章34二进制除法运算.ppt(12页珍藏版)》请在三一文库上搜索。
1、1/12,1,3.4 二进制除法运算(原码),0.111 0.1011 0.1010 0 R0 -0.0101 1 -2-1.Y 0.0100 10 R1 -0.0010 11 -2-2.Y 0.0001 110 R2 -0.0001 011 -2-3.Y 0.0000 0110 R3 ,例: X0.1010,Y0.1011,人工计算X/Y。, 每一步都要比较 余数Ri-1与-2-i.Y的 大小。,注意:, 若Ri-12-i.Y0, 表示够减,商为1; 反之,商为0。,2/12,2, 被除数(余数)除数时,可能产生负余数, 对负余数有两种不同的处理方法。, 依据对负余数的处理方法,对应有两种除
2、法 运算方法: 恢复余数法 不恢复余数法(加减交替法)(常用), 两个原码数相除,其商的符号为两数符号的 异或值,数值则为两数绝对值相除后的结果。,3/12,3,一、原码恢复余数法, 每一步须比较上一步的余数Ri-1和2-iY的大小, 人工计算时计算者可用观察比较的办法确定商 上0还是1,而在计算机中,只能用做减法判断 结果的符号为负还是为正来确定。, 若Ri-12-i.Y0,则上商1,差值即为余数Ri;, 若Ri-12-i.Y0,则上商0,差值并不是余数Ri, 要恢复Ri为上一步的余数Ri-1,即Ri2-i.Y。,4/12,4, Y用Y补实现。, 改进:, 笔算时,是余数不动,除数逐次右移;
3、机器运算时, 改为除数不动,余数逐次左移。, 左移出界的余数的高位都是无用的零,对运算不会 产生任何影响。, 由于每次所得的余数都多乘了21,在求得小数点后的 n位商后,相当于多乘了2n,所以,正确的余数应为 2-n.Rn。,5/12,5,例:X0.1011,Y0.1101,计算XY的商和余数。,R为负,商上0,00.1011 +-|Y|补 11.0011 11.1110 +|Y|补 00.1101 100.1011 左移1位 01.0110 +-|Y|补 11.0011 100.1001 左移1位 01.0010 +-|Y|补 11.0011 100.0101,解:|X|原00.1011,|
4、Y|补00.1101,-|Y|补11.0011,恢复余数,R为正,商上1,R为正,商上1,R为负,商上0,左移1位 00.1010 +-|Y|补 11.0011 11.1101 +|Y|补 00.1101 100.1010 左移1位 01.0100 +-|Y|补 11.0011 100.0111,恢复余数,R为正,商上1, 0 00, 商=0.1101,余数=0.01112-4,0.1101,6/12,6,练习:X0.1001,Y0.1011,计算XY的商和余数。,R为负,商上0,0.1011 00.1001 +-|Y|补 11.0101 11.1110 +|Y|补 00.1011 100.1
5、001 左移1位 01.0010 +-|Y|补 11.0101 100.0111 左移1位 00.1110 +-|Y|补 11.0101 100.0011,解:|X|原00.1001,|Y|补00.1011,-|Y|补11.0101,恢复余数,R为正,商上1,R为正,商上1,R为负,商上0,左移1位 00.0110 +-|Y|补 11.0101 11.1101 +|Y|补 00.1011 100.0110 左移1位 00.1100 +-|Y|补 11.0101 100.0001,恢复余数,R为正,商上1, 0 11, 商=0.1101,余数=0.00012-4,0.1101,7/12,7,二、
6、原码不恢复余数法(加减交替法), 恢复余数法的缺点是:当某一次-Y的差值为 负时,要多一次+Y恢复余数的操作,降低了 执行速度,又使控制线路变得复杂,因此在 计算机中很少采用。, 加减交替法是对恢复余数除法的一种修正。 当某次求得的差值(余数Ri)为负时,不恢复, 而是继续求下一位商,并在求商的同时暗中 恢复余数。,8/12,8, 运算规则:, 本次余数Ri为正时,商上1,余数左移一位, 下一步减除数求得新余数Ri+1;, 本次余数Ri为负时,商上0,余数左移一位, 下一步加除数求得新余数Ri+1。,Ri+12(Ri|Y|)|Y|,2Ri|Y|, 但若最后一次上商为0,而又需得到正确余数, 则
7、在这最后一次仍需|Y|恢复余数。,9/12,9,例:X0.1001,Y0.1011,计算XY的商和余数。,R为负,商上0,0.1011 00.1001 +-|Y|补 11.0101 11.1110 左移1位 11.1100 +|Y|补 00.1011 100.0111 左移1位 00.1110 +-|Y|补 11.0101 100.0011,解:|X|原00.1001,|Y|补00.1011,-|Y|补11.0101,R为正,商上1,R为正,商上1,R为负,商上0,左移1位 00.0110 +-|Y|补 11.0101 11.1011 左移1位 11.0110 +|Y|补 00.1011 10
8、0.0001,R为正,商上1, 0 11, 商=0.1101,余数=0.00012-4,0.1101,10/12,10,练习:X0.1011,Y0.1101,计算XY的商和余数。,R为负,商上0,00.1011 +-|Y|补 11.0011 11.1110 左移1位 11.1100 +|Y|补 00.1101 100.1001 左移1位 01.0010 +-|Y|补 11.0011 100.0101,解:|X|原00.1011,|Y|补00.1101,-|Y|补11.0011,R为正,商上1,R为正,商上1,R为负,商上0,左移1位 00.1010 +-|Y|补 11.0011 11.1101
9、 左移1位 11.1010 +|Y|补 00.1101 100.0111,R为正,商上1, 0 11, 商=0.1101,余数=0.01112-4,0.1101,11/12,11,练习:X0.1011,Y0.1101,计算XY的商和余数。,R为负,商上0,00.1011 +-|Y|补 11.0011 11.1110 左移1位 11.1100 +|Y|补 00.1101 100.1001 左移1位 01.0010 +-|Y|补 11.0011 100.0101,解:|X|原00.1011,|Y|补00.1101,-|Y|补11.0011,R为正,商上1,R为正,商上1,R为负,商上0,左移1位 00.1010 +-|Y|补 11.0011 11.1101 左移1位 11.1010 +|Y|补 00.1101 100.0111,R为正,商上1, 1 01, 商=0.1101,余数=0.01112-4,0.1101,12/12,12, 注意:, 对定点小数除法,约定被除数要小于除数,防止溢出。, 商的符号为相除两数的符号的半加和(即异或)。, n位被除数与除数(不含符号位)相除时,商取n+1 位(其中第一位是占符号位的),共左移n次。,
链接地址:https://www.31doc.com/p-2985749.html