3

2 の表現を使用し、各数値に 5 ビットを使用してバイナリで減算するのに助けが必要です。

1) -9 -7 = ? オーバーフローしていませんか?

-9 = 01001 (2 の補数 = 10111) および -7 = 00111 (2 の補数 = 11001)

2 の補数を使用しているため、追加する必要があります。

10111 +11001 = 100000 しかし、この答えは意味がありません。また、答えに 5 ビット以上あるため、オーバーフローがあると想定しています。

2) 6 - 10、前と同じプロセス。負の 2 進数は意味をなさない

4

3 に答える 3

7

1) -9 - 7

-9 - 7 = -9 + -7

9 (バイナリ) = 01001
-9 (2 の補数) = 10111
7 (バイナリ) = 00111
-7 (2 の補数) = 11001

 10111 +
 11001 =
110000

これは 5 ビットに収まりません。オーバーフローを削除すると、-16 (バイナリ) である 10000 が得られます。

2) 6 - 10

6 - 10 = 6 + -10

6 (バイナリ) = 00110
10 (バイナリ) = 01010
-10 (2 の補数) = 10110

 00110 +
 10110 =
 11100

これは 5 ビットに収まり、-4 (バイナリ) です。

于 2013-01-20T22:07:54.430 に答える
0

最初の質問の答えが間違っています。2 の補数を使用して -9-7 を見つけるには、次の手順に従う必要があります。

STEP:1 最初の数字の変換

1回目 9:01001のバイナリ変換

2 番目のバイナリの補数を見つけます: 10110

2 進補数に 1 を加算: 10110  
                                       +1
                                    -----
                                    10111  
STEP 2: 秒数の変換

1回目 7:00111のバイナリ変換

2番目にバイナリの補数を見つけます: 11000

2 進補数に 1 を加算: 11000
                                       +1
                                   -------
                                    11001
STEP3:追加する

ここで、2 つの出力 -9 + (-7): 10111 を追加します。
                                   +11001
                                  --------
                                   110000
最も重要なことは、答えが正しいかどうかを確認することです。
2 進数には index を使用できます: 7 6 5 4 3 2 1 0
                                                   1 1 0 0 0 0

1 桁の各インデックスで累乗された 2 を見つけます。
                                                (-)2^5 + 2^4

*注 (-) が使用されているのは、2 の補数では、最上位ビット (最高のインデックスを持つビット) が符号ビット -2^5 + 2^4 = -32 + 16 = -16 の正解であるためです。 -9-7=-16。このため、2 の補数は負の数を表す一般的な方法になります。符号の大きさについては、符号ビットを仮定する必要がありますが、これはコンピューターに実装するのが難しく、1 の補数については、正しい答えを見つけるために 1 を追加する必要があります。

于 2014-02-26T18:45:17.653 に答える
0

10111 + 11001 は 100000 ではなく 110000 です。

   1111
   10111
 + 11001
   -----
  110000
于 2013-01-20T22:05:37.240 に答える