与えられた二つの2進数または16進数の引き算を、補数を用いて計算する問題です。ここでは、最初の問題(1) 11010111 - 00110101 を解きます。
2025/4/29
1. 問題の内容
与えられた二つの2進数または16進数の引き算を、補数を用いて計算する問題です。ここでは、最初の問題(1) 11010111 - 00110101 を解きます。
2. 解き方の手順
補数を用いた減算は、次の手順で行います。
ステップ1: 引かれる数(被減数)はそのままにします。
ステップ2: 引く数(減数)の2の補数を求めます。2の補数は、まず1の補数を求め(各ビットを反転)、その結果に1を加えることで得られます。
ステップ3: 被減数と、減数の2の補数を足し合わせます。
ステップ4: 結果が被減数のビット数を超えた場合、最上位の桁上げ(carry)を無視します。
(1)の場合:
引かれる数(被減数): 11010111
引く数(減数): 00110101
ステップ1: 引く数(00110101)の1の補数を計算します。1と0を反転させます。
1の補数: 11001010
ステップ2: 1の補数に1を加えます。
これは、減数00110101の2の補数です。
ステップ3: 引かれる数(11010111)に、減数の2の補数(11001011)を加算します。
```
11010111
+ 11001011
-----------
110010010
```
ステップ4: 最上位の桁上げ(一番左の1)を無視します。
3. 最終的な答え
(1) 11010111 - 00110101 = 10010010