在做补码一位乘法时,过程中想加溢出怎么向右移动一位

如题所述

答:
Booth补码1或2位乘法过程,加法运算最高溢出位自动丢失,右移过程无须理会丢失位。

已知:x = 0.11011, y = -0.01010, 求 [x.y]补。
解: x.y = y.x
[y]补 = 11.10110, [-y]补 = 00.01010, 乘数[x]补 = 0.11011

部分积 乘数 附加位 操作说明
00.00000 0.11011 0 判断位为10,部分积+[-y]补
+00.01010
------------
00.01010 0.11011
→1位 00.001010 0.1101 1 判断位为11,部分积无加减
→1位 00.0001010 0.110 1 判断位为01,部分积+[y]补
+11.10110
------------
11.1100010 0.110
→1位 11.11100010 0.11 0 判断位为10,部分积+[-y]补
+00.01010
------------
00.00110010 0.11
→1位 00.000110010 0.1 1 判断位为11,部分积无加减
→1位 00.0000110010 0. 1 判断位为01,部分积+[y]补
+11.10110
------------
11.1011110010 最后一步不移位

[y.x]补 = 1.1011110010
[y.x]反 = 1.1011110001
[y.x]原 = 1.0100001110
x.y = y.x = -0.0100001110B
= - (0100 0011 1000B)/2^12 = -438H/1000H = - 1080D/4096D = -0.263671875D
温馨提示:答案为网友推荐,仅供参考
相似回答