我正在尝试学习二进制乘法,2的补数负数。
-10
x 3
我知道有一种简单的方法可以做到这一点。像符号扩展和初始部分产品一样。
-10 0110 twos complement
x 3 x 0011
---- ------
000000 (initial partial product) with sign extension at the MSB
10110 (bit 0 of the 3 times 10, sign extended at MSB)
110110 (sign extended sum of initial partial product and
Multiplicand)
10110- (bit 1 of the 3 multiplied by the 10. sign extension at the MSB Note the
Multiplicand is shifted left by one bit)
我迷失了如何继续。我甚至不确定我是否完全正确到达这一点。有人可以通过步骤告诉我如何做到这一点吗?我不想以任何其他方式做到这一点。如果我这样做,传统的方式大数字可能会很糟糕。谢谢
答案 0 :(得分:4)
你对-10的解释是关闭的。
..11110110 (-10)
× 00000011 (3)
-------------
..11110110 (-10)
+ ..111101100 (-20)
-------------
..11100010 (-30)
答案 1 :(得分:0)
希望这会对你有所帮助。使用2的补码。溢出被丢弃。
2的补码中的-10是0110.在前面加上1111使其为8位。
11110110 (-10)
00000011 (3)
-----------
11110110
11110110
-----------
1011100010 (discard [10])
回答= 11100010
当转换回来时,它是30.这意味着由11100010表示的数字是-30。 (2的比较)