こんにちは、みっちゃんです。

以前の記事で、2進数などについて紹介しました。

今回の記事では、2進数を用いた四則演算(足し算、引き算、掛け算、割り算)のうち、「足し算」と「引き算」について紹介したいと思います。

目次(まとめ)
- 足し算:「2個そろったら繰り上がる」ことに注意
- 引き算:コンピュータ上で「2の補数」で表現された負の値を足す
- 参考文献

足し算:「2個そろったら繰り上がる」ことに注意

繰り上がりについては、以前の記事で解説しました。

例えば「00000011」という8桁の2進数が与えられたとします。

この数字に「00000001」を足すことを考えます。

「00000012」ではないことに注意してください。

2進数は「0」と「1」だけで表現される数字なので「2」は存在しません。

したがって、繰り上がりが2回発生して「00000100」となります。

00000011+00000001=00000100

つまり、10進数での「3+1=4」に対応します。

引き算:コンピュータ上で「2の補数」で表現された負の値を足す

「補数」とは「(ある目的を達成するために)補う数」という意味です。

ここで、目的とは、以下のようなものです。

目的(1) 与えられた桁数で最大値を示すこと
目的(2) 次の桁に繰り上がること

例えば、「00000011」という8桁の2進数が与えられたとします。

目的(1)を達成するためには「11111100」という8桁の数字を足せばいいということになり「11111111」が与えられた桁数(8桁)での最大値です。

ここで「11111100」を「1の補数」と呼びます。

目的(2)を達成するためには「11111101」という8桁の数字を足せばいいということになり「100000000」というように9桁目に繰り上がっています。

ここで「11111101」を「2の補数」と呼びます。

コンピュータでは「2の補数」を元の値の負の値として使用されています。

00000011+11111101=(1)00000000

つまり、3+(−3)=0ということです。
※繰り上がって生じた9桁目の「1」は無視されます。

このように「引き算」も負の値を使った「足し算」として実現されています。

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社