5ビットの2進数で表された数値の減算を、補数を用いて加算として計算する問題です。各問題について、引かれる数の補数を求め、それを使って減算を加算に置き換えて計算します。
2025/7/1
1. 問題の内容
5ビットの2進数で表された数値の減算を、補数を用いて加算として計算する問題です。各問題について、引かれる数の補数を求め、それを使って減算を加算に置き換えて計算します。
2. 解き方の手順
まず、引かれる数(減数)の2の補数を求めます。2の補数は、各ビットを反転(0を1に、1を0に)し、その結果に1を加えることで求められます。求めた補数を、引く数(被減数)に加算します。計算結果が5ビットを超える場合、最上位の桁上がり(キャリー)を無視します。
(1) 01001(2) - 00110(2)
① 00110(2)の補数を求める:
- ビット反転: 11001(2)
- 1を加算: 11010(2)
よって、00110(2)の補数は 11010(2)
② 補数を使って計算:
- 01001(2) + 11010(2) = 100011(2)
- 最上位の桁上がりを無視: 00011(2)
(2) 11110(2) - 01000(2)
① 01000(2)の補数を求める:
- ビット反転: 10111(2)
- 1を加算: 11000(2)
よって、01000(2)の補数は 11000(2)
② 補数を使って計算:
- 11110(2) + 11000(2) = 110110(2)
- 最上位の桁上がりを無視: 10110(2)
(3) 01011(2) - 11100(2)
① 11100(2)の補数を求める:
- ビット反転: 00011(2)
- 1を加算: 00100(2)
よって、11100(2)の補数は 00100(2)
② 補数を使って計算:
- 01011(2) + 00100(2) = 01111(2)
(4) 10100(2) - 11010(2)
① 11010(2)の補数を求める:
- ビット反転: 00101(2)
- 1を加算: 00110(2)
よって、11010(2)の補数は 00110(2)
② 補数を使って計算:
- 10100(2) + 00110(2) = 11010(2)
3. 最終的な答え
(1) ① 11010(2) ② 00011(2)
(2) ① 11000(2) ② 10110(2)
(3) ① 00100(2) ② 01111(2)
(4) ① 00110(2) ② 11010(2)