3

2の補数の負の数である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)

どうやって続けるのか迷ってしまいました。私がこの時点まで完全に正しかったかどうかさえわかりません。誰かが私にそれを行う方法を段階的に教えてもらえますか?私はそれを他の方法でやりたくない。私がそれをするならば、大きな数が悪いかもしれない伝統的な方法。ありがとうございました

4

2 に答える 2

4

-10の解釈はオフです。

   ..11110110  (-10)
×    00000011    (3)
-------------
   ..11110110  (-10)
+ ..111101100  (-20)
-------------
   ..11100010  (-30)
于 2010-10-10T07:36:54.307 に答える
0

これがあなたを助けることを願っています。2 の補数を使用します。オーバーフローは破棄されます。

2 の補数の -10 は 0110 です。前に 1111 を追加して 8 ビットにします。

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

答え = 11100010

逆に変換すると、30 になります。つまり、11100010 で表される数値は -30 です。(2 のコンプ)

于 2015-04-19T06:59:56.433 に答える