補数とは何か解説する。また、なぜ補数が必要なのかの説明や、1の補数と2の補数についても説明する。
補数とは?
補数とは、「補う数」を意味する。
どんな数を補っているのかというと、二種類ある。
- 次の桁に桁上がりするために補う数
- 最大値を得るために補う数
次の桁に桁上がりするために補う数 (基数の補数)

補数の1種に、次の桁に桁上がりするために補う数がある。
例えば10進数であれば、3に7を足すことで、計算結果は次の位の10に桁あがりする。
なので、「3の10の補数は7」ということができる。
また、5進数であれば、5になると次の位に桁上がりするので、1+4の4や、3+2の2が5の補数になる。
ここでは、「1の5の補数は4」、「3の5の補数は2」、ということができる。
最大値を得るために補う数 (減基数の補数)

もう一つ補数の1種としては、最大値を得るために補う数が挙げられる。
例えば2進数の例であれば、3桁の最大値 (111)を得るために、110に001を足して補っている。
なのでここでは「110の1の補数は001」ということができる。
5進数の例でも、5になると桁が上がってしまうので、その一つ前の4がその桁の最大値となる。
1+3 = 4で、1に3という数字を補うことで、最大値の4を得ている。
なのでここでは「1の4の補数は3」ということができる。
2の補数とは
2の補数とは、2進数で、桁を一つ上げるために補う数のこと。
2の補数を求めるには
ex) 0010の2の補数を求めるには
2の補数を求める時には、2ステップある。
- 全てのビットを反転
- 1を加算する

反転した1110を、0010と足し合わせると、10000となり、0010の桁が繰り上がっていることが分かる。
2の補数を何に使うのか?
2の補数は一体何に使うのかというと、マイナスの数を表し、コンピューターが引き算を可能にするために使われる。
なぜ補数がいるのか?
コンピュータは実は足し算しかすることができず、引き算の機能は持っていない。
ではどうやって引き算を達成するかというと、補数を使ってマイナスの数を表現し、マイナスの数を足し算することで、引き算をできるようにする。
例えば先ほどの0010と1110を足し合わせてみる。

両者を足したとき、繰り上げたビットは切り捨てることができるので、結果的に0010 + 1110 = 0000となる。
10進数で考えると 2 + (-2) = 0 と同じ結果になっている。
1の補数とは
1の補数とは、2進数で、最大値を得るために補う数のこと。
1の補数を求めるには
ex) 0010の1の補数を求めるには
1の補数を求めるときは、全てのビットを反転させるだけで良い。

0010と足し合わせると、0010 + 1101 = 1111 となり、1101が最大値を求めるために数を補っていることが分かる。
1の補数は何に使われるのか?
2の補数はマイナスの数を表すために使われるが、1の補数は何に使われるのか。
1の補数は、例えば画像を反転させたりなど、画像処理などで使われる。
コンピュータの全体像
コンピュータの全体像を知ると、数学とコンピューターサイエンスの結びつき方もより深く理解できる。
こちらにコンピューターサイエンスの全体像についてまとめた。
-
-
Screen-Shot-2021-06-11-at-11.45.16
続きを見る