大家好,欢迎来到IT知识分享网。
2.4.1 恢复余数法
两个原码数X和Y相除,其商Q的符号为相除两数符号的异或值,余数R与被除数同符号。
基本原理
参与运算的两数通过“异或”原则确定商的符号,再利用其绝对值相除获取商和余数。
详细步骤:对给定两数X与Y,求X/Y
①初始化时,置R=X*,Q=0;
②执行R-Y,若结果大于0,在Q最低位上商1,转④;
③在Q最低位上商0,执行R+Y,恢复余数;
④判断计数器是否为0,若不为0,R与Q同时左移,转② ;
⑤通过X0 ⊕ Y0确定商的符号,判断余数符号位,若为负,执行R+Y,恢复余数;
⑥返回结果。
这里描述得看起来有点抽象,我给转成流程图了,按照这个一步步来即可。
结合例题:
【例】用原码一位除恢复余数法计算X/Y 。X=0.1011,Y=0.1101
————————————————————————————————————————————————————————————————————————————————
y* = 0.1101 [-y*]补 = 1.0011 (代替-y)
被除数(R) 商(Q) 说明
--------------------------------------------------------------------------------
0.1011 0.0000 初始状态 +[-y*]补
+1.0011
——————————
1.1110 0 余数为负数,上商0;+y*,恢复余数
+0.1101
——————————
0.1011
--------------------------------------------------------------------------------
1.0110 0_ 商与余数左移一位; +[-y*]补
+1.0011
——————————
0.1001 01 此时余数为正数,上商1;
--------------------------------------------------------------------------------
1.0010 01_ 商与余数左移一位; +[-y*]补
+1.0011
——————————
0.0101 011 此时余数为正数,上商1;
--------------------------------------------------------------------------------
0.1010 011_ 商与余数左移一位; +[-y*]补
+1.0011
——————————
1.1101 0110 余数为负数,上商0;+y*,恢复余数
+0.1101
——————————
0.1010
--------------------------------------------------------------------------------
1.0100 0110_ 商与余数左移一位; +[-y*]补
+1.0011
——————————
0.0111 01101 此时余数为正数,上商1;
--------------------------------------------------------------------------------
此时的商的位数与之前给出的商(00000)位数相同,则停止运算。
商的值为0.1101
商的符号位为 0⊕0=0,故X/Y=0.1101,余数为0.0111*2^-4
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21413.html