3.运算规则
(1)操作数、结果用原码表示;
(2)绝对值运算,符号单独处理;
(3)被乘数(B)、累加和(A)取双符号位;
(4)乘数末位(Cn)为判断位,其状态决定下步操作;
(5)作n次循环(累加、右移)。
2.3.2补码一位乘法
1.算法分析
2.比较法算法
Yn(高位) Y(n+1) 操作(A补为部分积累加和)
0 0 (0) 1/2A补
0 1 (1) 1/2(A补+X补)
1 0 (-1) 1/2(A补-X补)
1 1 (0) 1/2A补
3.运算实例
X=-0.1101,Y=-0.1011,求(XY)补。
初值:A=00.0000,B=X补=11.0011,
-B=(-X)补=00.1101, C=Y补=1.0101
步数 条件 操作 A C
00.0000 1.01010
1) 1 0 -B 00.1101
→ 00.0110 11.0101
2) 0 1 +B 11.1001
→ 11.1100 111.010
3) 1 0 -B 00.1101
→ 00.0100 1111.01
4) 0 1 +B 11.0111
→ 11.1011 11111.0
5) 1.0 -B修正 00.1000 1111
4.运算规则
(1)A、B取双符号位,符号位参加运算;
(2)C取单符号位,符号参加移位,以决定最后是否修正;
(3)C末位设置附加位C(n+1),初值为0,CnC(n+1)成组判断位决定运算操作;
(4)作n步循环,若需作n+1步,则不移位,仅修正。
1.0:-B修正
0.1:+B修正
0.0:不修正
1.1:不修正
四、定点除法运算
除法→若干余数与除数加减、移位。
2.4.1原码恢复余数法
1.算法
比较两数大小可用减法试探。
2*余数-除数=新余数
新余数为正:够减,商1。
新余数为负:不够减,商0,恢复原余数。