1. ホーム
  2. binary

[解決済み] 整数の2補数乗除はどのように行うのですか?

2022-02-02 05:56:19

質問内容

私はこれを読みました ポスト 2つの補数を使った2進数の掛け算についてですが、私にはあまりよくわかりません。私でさえも ウィキ という記事があります。負の数の掛け算の計算の進め方を知りたいです。

eg: -1 with -7 should give 7.
A 4-bit, 2's complement of -1 is : 1111
A 4-bit, 2's complement of -7 is : 1001

掛け算の計算を段階的に行う方法があれば助かります。私が出会った記事には、割り算について書かれているものはありませんでした。どのようにアプローチすればよいのでしょうか?

どのように解決するのですか?

ステップ1: sign extend 両方の整数を2倍のビットにする。これは安全な方法ですが、必ずしも必要ではないかもしれません。

for 4-bit --> 1111, you would extend as 1111 1111
for 4-bit --> 0111,you would extend as 0000 0111

ステップ2:初等的な乗算を行う

sep 3: 結果の最下位部分から正しい数の結果ビットを取り出します。

例:乗算の後、次のようなものが出来上がります。 0010011110 最後の8ビットを取る、つまり 10011110

提供された例で説明しましょう。 -1 X -7 4ビットで表現すると

         1111 1111        -1
       x 1111 1001     x  -7
      ----------------    ------
          11111111         7
         00000000
        00000000
       11111111
      11111111
     11111111
    11111111
   11111111
   ----------------
1  00000000111       --->  7 (notice the Most significant bit is zer``o)
      --------  (last 8-bits needed) 

より詳細な情報を得ることができます。 こちら ;

除算の場合:正数に変換し、計算後に符号を調整します。これは練習問題にしておきますが、次のようなものも参考にしてください。 ページ .