1の補数

二進数において各ビットをすべて反転させた数値。すべての桁を1にした値から値を引いたものに等しい。 ウィキペディアから

1の補数いちのほすう: ones' complementは、2位取り記数法の基数とした場合の減基数の補数である[1][2][3][4][5][6]。すなわち、整数 x との2冪乗 2n から 1 を引いた数に等しい数 xc = (2n 1) x のことをいう(例:24 1 = 15 について、4 に対する1の補数は 11)。

x とその1の補数 xc二進法で表せば、1の補数 xcx との和が n 桁の二進数として表せる最大の数となる数といえる(例:24 1 = 11112 について[注 1]410 = 01002 の1の補数は 1110 = 10112)。

二進法において、ある数の1の補数を反数と見なせば、決まった桁数の二進数をそれぞれ非負の数と負の数に対応づけられる(#負の数の表現)。

1の補数表現はコンピュータの分野において、固定長の符号付きの整数型などの表現として利用されることがある。

負の数の表現

1の補数を用いて二進数整数に対応づけられる。1の補数の定義より、n 桁の二進数 x とその補数 xc は以下の関係を満たす:

右辺の 2n 1倍数0 と同一視すれば、上記の関係は以下のように解釈できる:

これは x の補数 xcx反数 x と見なすことを意味する。

1の補数表現

要約
視点

#負の数の表現節の方法で反数および減法定義されているとする。更に 0 から 2n1 1 までの非負整数をそのまま通常の位取り記数法における二進表示、

に対応づければ、これらの数の補数として整数に対する1の補数表現が得られる。

具体例として、n = 4 桁の二進数における対応表を以下に示す:

さらに見る 対応する整数, 二進数 ...
24 についての1の補数表現における、二進数と対応する整数の一覧
対応する整数二進数対応する整数二進数
000002 011112
100012 111102
200102 211012
300112 311002
401002 410112
501012 510102
601102 610012
701112 710002
閉じる

結局、n 桁の二進数の k + 1 桁目の値を bk {0, 1} とすれば、1の補数表現は以下のように表せる:

1の補数表現における演算

1の補数で表される数は、対応する二進数表示の最上位の値 bn10 なら負でない値を取り、1 なら正でない値を取る。

1の補数表現において、二進数をビット列とみなせば、符号の反転はビット列 xビットを反転[注 2]することによって行える。x とそれをビット反転させた fx は常に以下を満たす:

上記より、x の1の補数は xc = fx と表せる。従って減法は、

と書き換えられる。ビット反転が反数に対応することから、0000...002111...112 の2つの表現方法を持つ。

脚注

参考文献

関連項目

Wikiwand - on

Seamless Wikipedia browsing. On steroids.