Двоичное умножение, 2-е дополнение - PullRequest
2 голосов
/ 10 октября 2010

Я пытаюсь выучить двоичное умножение, отрицательные числа, дополняющие 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 ]

4 голосов
/ 10 октября 2010

Ваша интерпретация -10 отключена.

   ..11110110  (-10)
×    00000011    (3)
-------------
   ..11110110  (-10)
+ ..111101100  (-20)
-------------
   ..11100010  (-30)
0 голосов
/ 19 апреля 2015

Надеюсь, это поможет вам. Используйте 2 дополнения. Переполнения отбрасываются.

-10 в дополнении 2 - это 0110. Добавьте 1111 вперед, чтобы получить 8 бит.

    11110110  (-10)
    00000011  (3)
  -----------
    11110110
   11110110
  -----------
  1011100010 (discard [10]) 

ответ = 11100010

при обратном преобразовании равно 30. Это означает, что число, представленное 11100010, равно -30. (2-х комп.)

...