情報:IT
高校生
解決済み

進数の問題です。解き方が分からないので誰か分かりやすく解説して頂けると嬉しいです。

課題 2 2の補数を用いた負の数表現において、 4ビットの場合を考える。以下の計算を2進数 で行うとどうなるか説明せよ。 5-3 ● 3-5 -2-4

回答

✨ ベストアンサー ✨

_①、(3)10は、2進数4ビットでいくつですか?
_②、①の補数は、2進数4ビットでいくつですか?
_①〜②の返信をして下さい。続きを書きます。

さね

①(3)10は、2進数4ビットで、(0011)2です。

②(0011)2の補数は、
  2進数4ビットで、(1101)2です。

ぺんぎん

【5-3】
_符号付き2進数の整数の減算は、負号の数の数値の補数の加算として計算するので、
 5+(-3)→(0101)2+「(0011)2の補数」
    →(0101)2+(1101)2
    →(1 0010)2
で、最上位ビットがオーバー・フローしているので、除外して、
    →(0010)2。
_この様な、書き方で、2問目の 3-5 を、途中式を含めて、返信して下さい。

さね

(5)10は2進数4ビットで(0101)2。

(0101)2の補数は2進数4ビットで(1101)2

3+(-5)→(0011)2+「(0101)2の補数」
→(0011)2+(1011)2
→(1110)2

ぺんぎん

_最上位ビットが1の時は、負数を表すのでしたよね?ですから、十進数に直す時には、
 (-1)✕「(1110)2の補数」
   =(-1)✕(0010)2=(-1)✕(2)10=(-2)10
となるのです。
_-2-4もやってみましょう。

さね

(2)10は2進数4ビットで(0010)2。
(0010)2の補数は2進数4ビットで(1110)2

(4)10は2進数4ビットで(0100)2。
(0100)2の補数は2進数4ビットで(1100)2

-2-4→-2+(-4)→ 「(0010)2の補数」
         + 「(0100)2の補数」
→(1110)2+(1100)2
→(1 1010)2

最上位ビットがオーバー・フローしているので、除外して、
    →(1010)2。

ぺんぎん

_(1010)2 は、10進数に直せますね?
_やり方、分かりましたよね?

_設問、理解出来た。出来ない。を、返信してください。

さね

(-1)✕「(1010)2の補数」
   =(-1)✕(0110)2=(-1)✕(6)10=(-6)10

_(1010)2 は、10進数に直せますね?
理解出来ました。直せます。
_やり方、分かりましたよね?
分かりました。

この回答にコメントする
疑問は解決しましたか?