━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■第9回 加算と減算
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
コンピュータは「計算機」とも言われますが、その名の通り、計算処理を頻
繁に行っています。
今回は、コンピュータの気持ちになって、2進数の計算をやってみましょう。
●加算
10進数と同様に、桁上がりに注意していけばいいです。
1と1のときに桁が上がると考えておけばいいでしょう。
(例)10 + 3
1 0 1 0
+ 0 0 1 1
-----------
1 1 0 1
●減算
減算は、10進数と少し違います。
というのも、コンピュータは加算しかできないのです。
ではどうするのかというと、加算の仕組みを利用しています。
A - B を計算したい場合、A + (-B) と計算する訳です。
マイナス値の表現には、2の補数というものを求めます。
方法は簡単で、まず全てのビットの 0 と 1 を逆にします。
これを、「1の補数」と言います。
(例)3 (0011) のとき → 1100
次に、さきほど求めた「1の補数」に1を加算します。
これを、「2の補数」と言います。
(例)1100 + 1 → 1101 (-3のマイナス値表現)
これで、マイナス値が表現できましたので、加算で減算を行うことができま
す。
(例)10 - 3
1 0 1 0
+ 1 1 0 1 ← 3の「2の補数」
-----------
1 0 1 1 1
答えは、10111 となりますが、先頭の1ビットは無視します。
すると、0111 となります。10進数に変換すると 7 になりますので、10 - 3
の結果と等しいことが分かると思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━