X=+1011,Y=-1101,用1101的原码反码补码加减交替和补码加减交替求X/Y,商Q、余数R。

计算机组成原理第七讲(除法-原码恢复余数法)(科大罗克露)
我的图书馆
计算机组成原理第七讲(除法-原码恢复余数法)(科大罗克露)
定点除法运算:若干余数与除数加减,移位。
例: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.011001&&&&&&&&&&&&&&&&&&&&&&&&& -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---&Q23.&&&&&&&&&&&&&&&&&&&&&&& +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.00<FONT color=#ff---&Q3
5.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-----&&& 01.01010&&&A=乘2r3&(左移一位)&&A=01.01010&&&&&&&&&&&&&&&&&&&&&&&& -B&&&&&&&&&& +&11.00001
&&&&&&&&&&0&&&&&&&&&&&&&&&&&&&&&&r4 =&& 00.01011&&(符号位为0,表示够减,商为1)&&&&&&&&& C=0.0<FONT color=#ff---&Q4&6&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-----&&&00.10110&&&A=乘2r4&(左移一位)&&A=00.10110&&&&&&&&&&&&&&&&&&&&&&&& -B&&&&&&&&&& +&11.00001
&&&&&&&&&1&&&&&&&&&&&&&&&&&&&&&&r5 =&& 11.10111&(符号位为1,表示不够减,商为0)&&&&&&&&& C=0.<FONT color=#ff---&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.011001&&&&&&&&&&&&&&&&&&&&&&&&& -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---&Q23.&&&&&&&&&&&&&&&&&&&&&&&& &--------- 11.10110&&&&A=乘2r2&(左移一位)&&A=11.10110&&&&&&&&&&&&&&&&&&&&&&&&&&& &+B&&&&&&& +&00.11111&&&&&&&&&&&&&&&&&&&&&&&&&&&& &0(为正) &&&&&&&& r3 = 00.10101&&&&(符号位为0,表示够减,商为1)&&&&&&&& C=0.00<FONT color=#ff---&Q3
4.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-----&&& 01.01010&&&A=乘2r3&(左移一位)&&A=01.01010&&&&&&&&&&&&&&&&&&&&&&&& -B&&&&&&&&&& +&11.00001
&&&&&&&&&&0&(为正)&&&&&&&r4 =&& 00.01011&&(符号位为0,表示够减,商为1)&&&&&&&&& C=0.0<FONT color=#ff---&Q4&5&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-----&&&00.10110&&&A=乘2r4&(左移一位)&&A=00.10110&&&&&&&&&&&&&&&&&&&&&&&& -B&&&&&&&&&& +&11.00001
&&&&&&&&&1(为负)&&&&&&&&&r5 =&& 11.10111&(符号位为1,表示不够减,商为0)&&&&&&&&& C=0.<FONT color=#ff---&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异号。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
TA的推荐TA的最新馆藏扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
【在线等】设x=0.1000,y=-0.1010,用补码加减交替法计算出x/y这题算几次都不对,需要完整解题过程+具体计算步骤,用以对照检查出错点,x/y=-0.1101,余数为0.今晚过后就算了.完整解题过程+具体计算步骤是类似这样的,出现这样且正确的答案,因为可能有点麻烦,
扫二维码下载作业帮
1.75亿学生的选择
x补=01000 y补=10110 -y补=01010被除数 商 +10110 异号,做加法=11110 1 同号 商1,下步做减法移位11100+01010=00110 10 异号,商0,下步做加法移位01100 +10110 = 异号,商0,下步加法移位00100 +10110 = 同号,商1移位 末位恒1对不起,booth算法是一位符号位吧?我似乎没算余数?
是的,没写完呢^_^;
x/y的值和余数,写完整没错了就采纳了,12点前追加悬赏噢。。PS:感谢写出 说明 ,期待完整答案!
不对啊,那个答案的余数数量级咋那么大?我看了一下,商好像对了。左边栏余数检查了一遍,好像也没错啊,汗!难道忘了booth了?去年才考研啊。。。晕,要不你看一下课本,我记得过程没错啊
是这样的额,如图
对,余数是我记错了数量级,乘以2^-4没错,因为相比笔算除法,多了四次移位运算。但符号与绝对值应该没错。
那您能把答案写全么^_^;然后我看没问题了马上采纳+追加分,非常感谢您花时间解答!
额……最左侧那项被除数(余数),最终余数就是经最后一次移位不再继续参加运算那个。
不太理解,我按您的算下去没得正确答案呢,您能补全下答案么= =。。
这个是完整答案啊。余数真是负数。你看一下课本,我不差例题太多吧,哥,你暂时饶了我吧,我明七点起床去照顾病人去。明天晚上我看书再做一遍好不?要相信,我做的交替法基本步骤应该不会错。我现在用手机给您回呢恩,刚刚翻了唐硕飞版组成原理,我算的余数就是10100×
2^-4过程应该是没错了。唉!兄弟,我尽力了(我不是手术医生)
为您推荐:
其他类似问题
x/y=0.1000/(-0.1010)=-10/11=-0.9090、、、
扫描下载二维码

我要回帖

更多关于 1101的原码反码补码 的文章

 

随机推荐