二进制乘法,2的补码

时间:2010-10-10 07:20:24

标签: binary twos-complement

我正在尝试学习二进制乘法,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)

我迷失了如何继续。我甚至不确定我是否完全正确到达这一点。有人可以通过步骤告诉我如何做到这一点吗?我不想以任何其他方式做到这一点。如果我这样做,传统的方式大数字可能会很糟糕。谢谢

2 个答案:

答案 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的比较)