2つの2進数の減算を、2の補数を用いた加算によって計算する問題です。計算過程を示す必要があります。 (1) $(01101)_2 - (00110)_2$ (2) $(00110)_2 - (01101)_2$
2025/6/13
1. 問題の内容
2つの2進数の減算を、2の補数を用いた加算によって計算する問題です。計算過程を示す必要があります。
(1)
(2)
2. 解き方の手順
2の補数を用いた減算は、以下の手順で行います。
1. 引く数の2の補数を求める。
2. 引かれる数と、引く数の2の補数を加算する。
3. 最上位桁からの繰り上がり(キャリー)がある場合は、無視する。
4. 結果の符号ビット(最上位ビット)を確認する。
* 符号ビットが0なら、結果は正の数であり、そのまま答えとなる。
* 符号ビットが1なら、結果は負の数であり、2の補数を求めて負の数を表す。
(1)
1. $(00110)_2$の2の補数を求める。
* まず、すべてのビットを反転する:
* 次に、1を加える:
* よって、の2の補数は
2. $(01101)_2$と$(11010)_2$を加算する:
```
01101
+ 11010
-------
100111
```
* 繰り上がり(キャリー)を無視する。
* 結果は
3. 結果の符号ビットは0なので、そのまま正の数として解釈する。
4. $(00111)_2$は10進数で7。
(2)
1. $(01101)_2$の2の補数を求める。
* まず、すべてのビットを反転する:
* 次に、1を加える:
* よって、の2の補数は
2. $(00110)_2$と$(10011)_2$を加算する:
```
00110
+ 10011
-------
11001
```
* 繰り上がり(キャリー)は発生しない。
* 結果は
3. 結果の符号ビットは1なので、2の補数を求めて負の数を表す。
* まず、すべてのビットを反転する:
* 次に、1を加える:
* よって、の2の補数は
4. $(00111)_2$は10進数で7なので、結果は-7。
3. 最終的な答え
(1)
(2) (2の補数を求めた結果、-7)