打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
计算机组成原理第七讲(除法-原码恢复余数法)(科大罗克露)
定点除法运算:若干余数与除数加减,移位。
例:0.10110 ÷ 0.11111--------->商为:0.10110  余数为:0.10110 x 2-5
实现除法关键:比较余数,除数绝对值大小,以决定上商。恢复余数。
1.原码恢复余数法
算法:比较两数大小可用减法试探。
2 X 余数 -除数 =新余数  (为正,够减,商为1;为负,不够减,商为0,恢复原余数)
实例:X= -0.10110    Y=0.11111  求X/Y,给出商数Q和余数R。
设置寄存器:A:被除数,余数   B:除数    C:商
初值:  A=|X|=00.10110;B=|Y|=00.11111;-B=11.00001;C=|Q|=0.00000
分步运算过程:
步骤   判断条件   操作   A=00.10110(看作余数r0)   C=0.00000(Cn=0最末位)
符号位SA        <----- 01.01100        A= 乘2r0(左移一位)A=01.01100
1                          -B        + 11.00001
0                      r1 = 00.01101  (符号位为0,表示够减,商为1)             C=0.00001--->Q12                              <------ 00.11010    A=乘2r1(左移一位) A=00.11010
-B          +11.00001
1                       r2' = 11.11011 (符号位1,表示不够减,商为0)               C=0.00010--->Q2
3.                        +B        + 00.11111  (不够减,恢复余数)
恢复余数 r2 = 00.11010
4                           <--------- 01.10100    A=乘2r2 (左移一位)  A=00.11010
-B           +11.00001
0                       r3 = 00.10101    (符号位为0,表示够减,商为1)         C=0.00101--->Q3
5.                            <-----    01.01010   A=乘2r3 (左移一位)  A=01.01010
-B           + 11.00001
0                      r4 =   00.01011  (符号位为0,表示够减,商为1)          C=0.01011--->Q4
6                                <-----   00.10110   A=乘2r4 (左移一位)  A=00.10110
-B           + 11.00001          1                      r5 =   11.10111 (符号位为1,表示不够减,商为0)          C=0.10110--->Q5
7                          +B                00.11111
恢复余数  r6 =   00.10110
Q=-0.10110
R= 0.10110 x 2-5;(余数同被除数符号)
X/Y = -0.10110 + 0.10110 x 2-5/0.11111
结果X/Y就等于商Q加上余数R再除以除数Y;
运算规则说明:
1.A,B双符号位,X,Y绝对值,|X|小于|Y|。
2.运算结束后,余数乘以2-n,余数与被除数同号。
注解:这个算法是有缺陷的,不够减,就要恢复余数,需要改进。用原码不恢复余数法。
2.原码不恢复余数法(加减交替法)
1算法分析:
看上例:原码恢复余数法                        总结:不恢复余数
第二步:2r1 - B = r2' < 0;                         第二步:2r1 - B = r2' < 0;
第三步:r2' + B =r2(恢复余数)             第三步:2r2' + B = r3  //直接把r2'左移一位加B
第四步:2r2 - B=r3
2r2 - B=2(r2' + B)- B
=2r2' + B = r3
算法表达式:ri + 1 = 2ri + (1 - 2Qi) Y
ri为正,则Qi为1,第i+1步作2ri  - Y;
ri为负,则Qi为0,第i+1步作2ri  + Y;
实例:
X=0.10110, Y=-0.11111  求X/Y,给出商数Q和余数R。 设置寄存器:A:被除数,余数   B:除数    C:商
初值:  A=|X|=00.10110;B=|Y|=00.11111;-B=11.00001;C=|Q|=0.00000
分步运算过程:
步骤   判断条件   操作   A=00.10110(看作余数r0)   C=0.00000(Cn=0最末位)
符号位SA        <----- 01.01100        A= 乘2r0(左移一位)A=01.01100
1                          -B        + 11.00001
0(为正)           r1 = 00.01101  (符号位为0,表示够减,商为1)             C=0.00001--->Q12                              <------ 00.11010    A=乘2r1(左移一位) A=00.11010
-B          +11.00001
1 (为负)            r2 = 11.11011 (符号位1,表示不够减,商为0)               C=0.00010--->Q2
3.                         <--------- 11.10110    A=乘2r2 (左移一位)  A=11.10110
+B        + 00.11111
0(为正)          r3 = 00.10101    (符号位为0,表示够减,商为1)         C=0.00101--->Q3
4.                            <-----    01.01010   A=乘2r3 (左移一位)  A=01.01010
-B           + 11.00001
0 (为正)       r4 =   00.01011  (符号位为0,表示够减,商为1)          C=0.01011--->Q4
5                                 <-----   00.10110   A=乘2r4 (左移一位)  A=00.10110
-B           + 11.00001          1(为负)         r5 =   11.10111 (符号位为1,表示不够减,商为0)          C=0.10110--->Q6                             +B               00.11111
恢复余数     r6 =  00.10110
Q=-0.10110
R= 0.10110 x 2-5;(余数同除数符号)
X/Y = -0.10110 + 0.10110 x 2-5/-0.11111
结果X/Y就等于商Q加上余数R再除以除数Y;
运算规则说明:
1.A,B双符号位,X,Y绝对值,|X|<|Y|。
2.根据余数的正负决定商值及下一步操作。
3.求n位商,作n步操作;若第n步余数为负,则第n+1步恢复余数,不移位。
3.补码不恢复余数法(加减交替法)
问题:1.如何判断是否够减法?如何上商?如何确定商的符号?
1.判断够减:(1)同号相除。用绝对值相减(用1表示够减,用0表示不够减)
够减: r与X,Y同号。用绝对值相减(用1表示够减,用0表示不够减)
不够减: r与X,Y异号。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
查看文本资源
定点数运算 (转)
计算除法时,错把除数65写成56,结果得到的商是13,余数是52,求正确的商应该是多少?
数据的表示和运算
小学三年级数学除法知识点总结
小明计算除法时,错把除数65写成56,结果得到的商是13,余数是52,求正确的商应该是多少?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服