補数とは?補数や2の補数表現をわかりやすく解説

補数とは何か解説する。また、なぜ補数が必要なのかの説明や、1の補数と2の補数についても説明する。


補数とは?

補数とは、「補う数」を意味する。

どんな数を補っているのかというと、二種類ある。

  1. 次の桁に桁上がりするために補う数
  2. 最大値を得るために補う数


次の桁に桁上がりするために補う数 (基数の補数)


補数とは?補数や2の補数表現をわかりやすく解説


補数の1種に、次の桁に桁上がりするために補う数がある。

例えば10進数であれば、3に7を足すことで、計算結果は次の位の10に桁あがりする。

なので、「3の10の補数は7」ということができる。

また、5進数であれば、5になると次の位に桁上がりするので、1+4の4や、3+2の2が5の補数になる。

ここでは、「1の5の補数は4」、「3の5の補数は2」、ということができる。


最大値を得るために補う数 (減基数の補数)


補数とは?補数や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. 全てのビットを反転
  2. 1を加算する


補数とは?補数や2の補数表現をわかりやすく解説


反転した1110を、0010と足し合わせると、10000となり、0010の桁が繰り上がっていることが分かる。


2の補数を何に使うのか?

2の補数は一体何に使うのかというと、マイナスの数を表し、コンピューターが引き算を可能にするために使われる。


なぜ補数がいるのか?

コンピュータは実は足し算しかすることができず、引き算の機能は持っていない。

ではどうやって引き算を達成するかというと、補数を使ってマイナスの数を表現し、マイナスの数を足し算することで、引き算をできるようにする。

例えば先ほどの0010と1110を足し合わせてみる。


補数とは?補数や2の補数表現をわかりやすく解説


両者を足したとき、繰り上げたビットは切り捨てることができるので、結果的に0010 + 1110 = 0000となる。

10進数で考えると 2 + (-2) = 0 と同じ結果になっている。


1の補数とは

1の補数とは、2進数で、最大値を得るために補う数のこと。


1の補数を求めるには

ex) 0010の1の補数を求めるには

1の補数を求めるときは、全てのビットを反転させるだけで良い。


補数とは?補数や2の補数表現をわかりやすく解説

0010と足し合わせると、0010 + 1101 = 1111 となり、1101が最大値を求めるために数を補っていることが分かる。


1の補数は何に使われるのか?

2の補数はマイナスの数を表すために使われるが、1の補数は何に使われるのか。

1の補数は、例えば画像を反転させたりなど、画像処理などで使われる。


コンピュータの全体像

コンピュータの全体像を知ると、数学とコンピューターサイエンスの結びつき方もより深く理解できる。

こちらにコンピューターサイエンスの全体像についてまとめた。


[st-card myclass=”” id=4587 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]