は、 を位取り記数法の基数とした場合の減基数の補数である。すなわち、整数 との和が の冪乗 から を引いた数に等しい数 のことをいう(例: について、 に対する1の補数は )。
数 とその1の補数 を二進法で表せば、1の補数 は との和が 桁の二進数として表せる最大の数となる数といえる(例: について、 の1の補数は )。
二進法において、ある数の1の補数を反数と見なせば、決まった桁数の二進数をそれぞれ非負の数と負の数に対応づけられる(#負の数の表現)。
1の補数表現はコンピュータの分野において、固定長の符号付きの整数型などの表現として利用されることがある。
負の数の表現 1の補数を用いて二進数を負の整数に対応づけられる。1の補数の定義より、 桁の二進数 とその補数 は以下の関係を満たす:
右辺の の倍数を と同一視すれば、上記の関係は以下のように解釈できる:
これは の補数 を の反数 と見なすことを意味する。
1の補数表現 #負の数の表現節の方法で反数および減法が定義されているとする。更に から までの非負整数をそのまま通常の位取り記数法における二進表示、
に対応づければ、これらの数の補数として負の整数に対する1の補数表現が得られる。
具体例として、 桁の二進数における対応表を以下に示す: + についての1の補数表現における、二進数と対応する整数の一覧 対応する整数 二進数 対応する整数 二進数
結局、 桁の二進数の 桁目の値を とすれば、1の補数表現は以下のように表せる:
1の補数表現における演算
1の補数で表される数は、対応する二進数表示の最上位の値 が なら負でない値を取り、 なら正でない値を取る。
1の補数表現において、二進数をビット列とみなせば、符号の反転はビット列 のビットを反転することによって行える。 とそれをビット反転させた は常に以下を満たす:
上記より、 の1の補数は と表せる。従って減法は、
と書き換えられる。ビット反転が反数に対応することから、 は と の2つの表現方法を持つ。
脚注
注釈
出典
参考文献
関連項目 符号付数値表現 コンピュータの数値表現 補数 2の補数