- ベストアンサー
2の補数計算(4ビット)
5+6と5-7を2の補数計算で求め、結果を10進表示する方法を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
5+6の方はどこで2の補数計算を使うのか分かりませんが…。 10進数を2進数にする方法は分かりますよね? [5+6の計算] 5(10進数) → 0101(2進数)、6(10進数) → 0110(2進数)なので 0101 +)0110 ----- 1011 1011(2進数)を10進数にすると、 2^3 + 2^1 + 2^0 = 8 + 2 + 1 = 13 [5-7の計算] 4ビットの最上位ビットを符号(-)を表すものとします。 -7(10進数)の2進数を求めるために7(10進数) → 0111(2進数)の2の補数を計算ですが、これは「0111をビット反転して(1000)して、1を加えたもの(1001)」になります。 つまり、-7(10進数)の2進数は1001で表されます。 5 + (-7)を2進数で計算すると、 0101 +)1001 ----- 1110 1110(2進数)を10進数で表すために、これの2の補数を求めると0010(2進数)。 0010(2進数)は2(10進数)なので、1110(2進数)は-2(10進数)。 数学というより、コンピュータでの計算ですが…。
その他の回答 (2)
- petertalk
- ベストアンサー率69% (156/225)
結果も十進表示でいいのなら、11と-2と暗算で出てしまいますが わざわざ4ビットの二進数にするのは、補数表現や表せる範囲を 出題の意図にしているのかもしれませんね。 4ビット、2の補数の二進数で表せるのは、7 から -8 までです。 5+6 は 0101 + 0110 = 1011 で、-5(オーバーフロー) 5-7 は 0101 - 0111 = 1110 で、-2 となります。
- x_jouet_x
- ベストアンサー率68% (162/236)
5や6は10進数ですよね? あと4ビットとあるので、5(10進数) → 0101(2進数)として回答すればいいんですか?
補足
はい、そうです。 説明が足らず、すみませんでした。 回答おねがいします。