参考サイト:
http://proengineer.internous.co.jp/content/columnfeature/6254
http://ur0.biz/SDfX
http://kccn.konan-u.ac.jp/information/cs/cyber03/cy3_hub.htm
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1363723923
#「補数(complement)」とは
ある基数法において、ある自然数 a に足したとき桁が1つ上がる(桁が1つ増える)数のうち最も小さい数をいう。
#基数の補数
基数と補数を足した場合に桁上がりが発生する数のうち最小の数のこと。
##実際に10進数で、基数の補数を求めてみる
・「6」の補数は「4」 (10¹=10)
・「171」の補数は「829」 (10³=1000)
#減基数の補数
基数と補数を足した場合に桁上がりが発生しない数のうち最大の数のこと。
##実際に10進数で、減基数の補数を求めてみる
・「6」の補数は「3」 (10¹-1=9)
・「171」の補数は「828」 (10³-1=999)
#補数表現を使うメリット
補数を使うことによってもたらされる最も大きなメリットは、マイナス記号を使わずに負の数を表現することができるという点です。
例えば、次のような計算をしたいとします。
1195 - 171 = 1024
ここで、171を引く代わりに、171を基数とした時の補数9829を足してみます。
1195 + 9829 = 11024
この結果から最上位の桁にある「1」を取り除くことで、答えである「1024」を得ることができました。
##マイナス記号を使わずに負の数を表現することができることのメリット
下の表をご覧ください。
この通り、2の補数を使用した場合、絶対値や1の補数を使用した場合よりも、負数を1種類多く表現できることが分かります。
つまり、使用するビット数を節約することができるのです。
また、四則演算を電子回路がやってくるのが当たり前なら良いですが、そうでない場合もあると思います。
そんな時、補数を利用すれば加算回路さえあれば減算回路を作成しなくて済むため、経済的メリットが得られます。