2進数で減算を行う場合は次の3パターンに分けられます。
0から0及び1から1の減算
0から0、1から1の減算を行うと、結果は0になります。
1から0の減算
1から0を減算を行うと、結果は1になります。
0と1の減算
0から1を減算は出来ません。減算をするには1つ上の桁から値を借りて減算をします。
0から1を減算する場合は、上の桁から値を借りて減算をします。10進数の時は10を借りて減算をしますが、2進数の場合は2を借りて計算します。
減算で引けない場合、前の桁から2の値を借りて計算します。
例えば、(1000)2 - (0011)2を計算すると次のようになります。
計算結果のように、最上位桁から2を借りて計算を行います。(1000)2 - (0011)2の計算結果は(0101)2になります。
2を借りてくるってあまりやったことないから難しいですね。
加算と比べて面倒で間違えそうです。
確かに、加算に比べ減算は難しいですね。1バイト(8ビット)のサイズで計算をしてみましょう。
2進数の減算をやってみよう。
8ビットの2つの2進数を減算して結果を2進数で求めましょう。
計算結果も8ビットで答えましょう。
問題1 (01111111)2 - (01010101)2
問題2 (01110001)2 - (00001010)2
問題3 (10000000)2 - (01011101)2
減算結果を確認する
問題1
(01111111)2 - (01010101)2
(00101010)2
問題2
(01110001)2 - (00001010)2
(01100111)2
問題3
(10000000)2 - (01011101)2
(00100011)2
減算は難しかったですね。実は、ある工夫を使えば、減算をしなくても減算と同じ結果を出すことができます。
どのように計算をするのか学習しましょう。