1の補数 【one's complement】
概要
1の補数(one's complement)とは、ある自然数を2進数(2進法)で表現した時に、足し合わせても桁が増えない最大の数のこと。コンピュータではビット反転(NOT演算)によって求めることができる。2進数における「減基数の補数」と呼ばれる数で、ある数に足し合わせても桁数が増えない数のうち、最も大きい数を指す。足し合わせた結果は元の数と同じ桁数ですべての桁が「1」になる。例えば、8桁の2進数「10010110」に対する1の補数は「01101001」であり、両者を足し合わせるとちょうど「11111111」となる。
2進数には「0」と「1」しかないため、どの桁も足した結果が1になるということは、元の数が「1」の桁では補数の同じ桁は「0」に、元の数が「0」の桁では補数の同じ桁は「1」になる。ちょうど元の数の各桁の「0」と「1」を反転させたものが補数となるため、ビット単位の論理否定(NOT)によって求めることができる。
これに対し、元の数に足し合わせるとちょうど桁が一つ増える最小の数を「2の補数」(2進数における基数の補数)という。足し合わせると「1000…」と最上位桁が繰り上がって下位桁がすべて0になる数で、1の補数に1を加えることで求めることができる。
(2022.10.25更新)