3.补码不恢复余数法(加减交替法) 问题:如何判断是否够减法?如何上商?如何确定商的符号?
1.判断够减:(1)同号相除。用绝对值相减(用1表示够减,用0表示不够减)
够减: 余数r与被除数X,除数Y同号。
不够减: 余数r与被除数X,除数Y异号。
(2)异号相除。用绝对值相减(用1表示够减,用0表示不够减)
够减:余数 r与被除数X同号,与除数Y异号。
不够减:余数r与被除数X异号,与除数Y同号
2.判断规则:
X补/Y补-------->1.同号:作X补 - Y补----->够减:余补r与除数补Y同号。
不够减:余补r与除数补Y异号。
X补/Y补-------->2.异号:作X补 + Y补----->够减:余补r与除数补Y异号。
不够减:余补r与除数补Y同号。
3.求商值:
X补/Y补-------->1.同号:商为正;---->够减商为1 (余数r与除数R同号)
不够减商为0(余数r与除数R异号)
X补/Y补-------->2.异号:商为负;----->够减商为0 (余数r与除数R异号)
不够减商为1(余数r与除数R同号)
上商规则:商Qi= !(Sr ^ Sy) 余数与除数同号商为1,异号商为0。
4.算法表达式:(ri + 1)补=2ri补 + (1-2Qi补)Y补
ri 补与Y补同号,则Qi补为1,第i + 1步作2ri补 - Y补;
ri 补与Y补异号,则Qi补为0,第i + 1步作2ri补 +Y补;
5.求商符:
令X补 = r0补 r0补 与 Y补 ------->同号 商符号Q0补 = 1 与实际商符相反。
异号 商符号Q0补 = 0
6.商的校正:
n-1
X补/Y补 = (-1 + 2-n + ∑ 2-iQi补) + 2-nr补/Y补 //加号前面是商,后面是余数。
i=0
(1)作补码运算求n-1位商时(是假商)
(2)第n位商(末位商)恒置1.
(3)商符号变反。
(4)余数求到rn步。
7.实例
X=0.10110 Y=-0.11111 求X/Y,给出商Q和余数Q。
设置初值: A=X补=00.10110 B=Y补=11.00001 -B=00.11111 C=Q补=0.00000
步数 判断条件 操作 A =00.10110 r0 C=0.00000(Cn-1=0,Q0=0)
r,Y的符号 求商符号 00.10110 r0 0.00000
1 异号
+B + 11.00001 0.0000 Q1
异号 00.01101 r1
2
+B + 11.00001
同号 11.11011 r2 0.0001 Q2
3
-B +00.11111
异号 00.10101 r3 0.0010 Q3
4
+B + 11.00001
异号 00.01011 r4 0.0100 Q4
5
+B + 11.00001
11.10111 r5
假商=0.0100 进行假商较正
真商=0.0100 + 1.00001 =1.01001
Q= -0.10111 R= -0.1001 x 2-5
X/Y= -0.10111 + -0.01001 x 2-5/-0.11111