当前位置:文档之家› 计算机组成原理-定点除法

计算机组成原理-定点除法

定点除法
除法——若干余数与除数加减、移位

0.10110/0.11111
手算:

0.10110
_________________
0. 11111 ) 0.10110 0
- 1111 1
————————
110 100
- 11 111
————————
101 010
- 11 111
————————
10 110
余数正确结果:0.0000010 110
商: 0.10110
余数:0.0000010 110
每一步都是比较余数与除数的大小

实现除法的关键:比较余数与除数的大小,以决定商
原码恢复余数法 ——原码不恢复余数法
补码不恢复余数法

原码恢复余数法

1.算法比较两个数大小可用减法试探

2*余数-除数=新余数 为正:够减,商1
为负:不够减,商0;恢复原余数

2.实例
X=-0.10110,Y=0.11111,求X/Y,给出商Q和余数R

设置寄存器:A:存放被除数,余数 初始值:A=|X|=00.10110
B:存放除数 B=|Y|=00.11111
-B=11.00001
C:存放商 C=|Q|=0.00000

步数 条件 操作 A(高位) C(低位)
0 SA 00.10110 r0 0.00000 Cn(0)
1 左移← 01.01100 2r0
-B +11.00001
—————
SA=0 00.01101 r1 0.00001 Q1(1)
← 00.11010 2r1
2 -B +11.00001
—————
SA=1 11.11011 r2' 0.00010 Q2(10)
3 +B +00.11111
—————
恢复余数 00.11010 r2
4 ← 01.10100 2r2
-B +11.00001
—————
SA=0 00.10101 r3 0.00101 Q3(101)
5 ← 01.01010 2r3
-B +11.00001
—————
SA=0 00.01011 r4 0.01011 Q4(1011)
6 ← 00.10110 2r4
-B +11.00001
—————
SA=1 11.10111 r5' 0.10110 Q5(101110)
7 +B +00.11111
—————
恢复余数 00.10110 r5
Q=-0.10110
R=-0.10110*2(-5)
X/Y=-0.10110+[-0.10110*2(-5)]/0.11111

3.说明:
(1)A,B取双符号位,X、Y绝对值|X|<|Y|
(2)运算结果后,余数乘以2(-n),与被除数同号


原码不恢复余数法(加减交替法)
1.算法分析

第二步:2r1-B=r2'<0 第二步:2r1-B=r2<0
第三步:r2'+B=r2(恢复余数) 第三步:r2+B=r3(不恢复余数)
第四步:2r2-B=

r3
2r2-B=2(r2'+B)-B
=2r2'+B=r3
2.算法
r(i+1)=2ri+(1-2Qi)Y
ri为正,Qi则为1,第i+1步作2ri-Y;
ri为负,Qi则为0,第i+1步作2ri+Y;

3.实例
X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R

初始值:A=|X|=00.10110
B=|Y|=00.11111 -B=11.00001
C=|Q|=0.00000

步数 条件 操作 A(高位) C(低位)
0 r 00.10110 r0 0.00000 Cn(0)
1 左移← 01.01100 2r0
-B +11.00001
—————
为正 00.01101 r1 0.00001 Q1(1)
← 00.11010 2r1
2 -B +11.00001
—————
为负 11.11011 r2 0.00010 Q2(10)
3 ← 11.10110 2r2
+B +00.11111
—————
为正 00.10101 r3 0.00101 Q3(101)
4 ← 01.01010 2r3
-B +11.00001
—————
为正 00.01011 r4 0.01011 Q4(1011)
5 ← 00.10110 2r4
-B +11.00001
—————
为负 11.10111 r5' 0.10110 Q5(10110)
6 +B +00.11111
—————
恢复余数 00.10110 r5
Q=-0.10110
R=0.10110*1/25
X/Y=-0.10110+0.10110/(-0.11111)

4.运算规则
(1)A,B取双符号位,X、Y绝对值|X|<|Y|;
(2)根据榆树的正负,决定商值及下步操作
(3)求n位商,作n步操作;第n步余数为负,则n+1步恢复余数,不移位。


补码不恢复余数法(加减交替法)

1.判够减
(1)同号相除
1
____
4 ) 7
- 4
————
3

0
____
7 ) 4
- 7
————
- 3

1
____
-4)-7
-(-4)
————
-3

0
____
-7 )-4
-(-7)
————
3
够减:r与XY同号;不够减:r与XY异号

(2)异号相除
1
____
-4 ) 7
+(-4)
————
3

0
____
-7 ) 4
+(-7)
————
-3

1
____
4)-7
+4
————
-3

0
____
-7 )-4
+7
————
3
够减:r与X同号,与Y异号;不够减:r与X异号,r与Y同号

(3)
X补/Y补= 同号:作 X补-Y补 够减:r补与Y补同号
不够减:r补与Y补异号
异号:作 X补+Y补 够减:r补与Y补异号
不够减:r补与Y补同号
2.求商值
负商 1.00101原
1.11011补
X补/Y补= 同号:商为正 够减:商1,

;(r补、Y补同号)
不够减:商0;(r补、Y补异号)
异号:商为负 够减:商0;(r补、Y补异号)
不够减:商1;(r补、Y补同号)
上商规则:余数与除数同号商1,异号商0;

3.算法
[r(i+1)]补=2ri补+(1-2Qi补)Y补
ri补与Y补同号,Qi补则为1,第i+1步作2ri补-Y补;
ri补与Y补异号,Qi补则为0,第i+1步作2ri补+Y补;


4.求商符号
令X补=r0补
r0补与Y补同号:Q0补则为1;
r0补与Y补异号:Q0补则为0;与实际商符相反

5.商的矫正
X补/Y补
注意:
(1)求n-1为商(假商);
(2)第n位商(末位商)恒置1;
(3)商符变反;
(4)余数求至rn;

6.实例
X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R

初始值:A=X补=00.10110
B=Y补=11.00001 -B=00.11111
C=Q补=0.00000

步数 条件 操作 A(高位) C(低位)
0 r,Y 00.10110 r0 0.00000 Q0(0)
1 左移← 01.01100 2r0
+B +11.00001
—————
异号 00.01101 r1 0.0000 Q1(00)
← 00.11010 2r1
2 +B +11.00001
—————
同号 11.11011 r2 0.00001 Q2(001)
3 ← 11.10110 2r2
-B +00.11111
—————
异号 00.10101 r3 0.0010 Q3(0010)
4 ← 01.01010 2r3
+B +11.00001
—————
异号 00.01011 r4 0.0100 Q4(0.0100)
5 ← 00.10110 2r4
+B +11.00001
—————
11.10111 r5
假商=0.0100
真商=0.0100+1.00001=1.01001
Q=-1.01001
R=-0.101001*1/25
X/Y=-0.10111+(-0.101001*1/25)/(-0.11111)

7.运算规则
(1)A,B取双符号位,符号位参加运算,X、Y绝对值|X|<|Y|;
(2)根据余数和除数的符号,决定商值及下步操作
(3)求n-1位商,作n步操作;
(4)对商矫正(商符变反,第n位商恒置1)

相关主题
文本预览
相关文档 最新文档