Remove ads
二進数において各ビットをすべて反転させた数値。すべての桁を1にした値から値を引いたものに等しい。 ウィキペディアから
数 x とその1の補数 xc を二進法で表せば、1の補数 xc は x との和が n 桁の二進数として表せる最大の数となる数といえる(例:24 − 1 = 11112 について[注 1]、410 = 01002 の1の補数は 1110 = 10112)。
二進法において、ある数の1の補数を反数と見なせば、決まった桁数の二進数をそれぞれ非負の数と負の数に対応づけられる(#負の数の表現)。
1の補数を用いて二進数を負の整数に対応づけられる。1の補数の定義より、n 桁の二進数 x とその補数 xc は以下の関係を満たす:
右辺の 2n − 1 の倍数を 0 と同一視すれば、上記の関係は以下のように解釈できる:
これは x の補数 xc を x の反数 −x と見なすことを意味する。
#負の数の表現節の方法で反数および減法が定義されているとする。更に 0 から 2n−1 − 1 までの非負整数をそのまま通常の位取り記数法における二進表示、
に対応づければ、これらの数の補数として負の整数に対する1の補数表現が得られる。
具体例として、n = 4 桁の二進数における対応表を以下に示す:
対応する整数 | 二進数 | 対応する整数 | 二進数 |
---|---|---|---|
0 | 00002 | 0 | 11112 |
1 | 00012 | −1 | 11102 |
2 | 00102 | −2 | 11012 |
3 | 00112 | −3 | 11002 |
4 | 01002 | −4 | 10112 |
5 | 01012 | −5 | 10102 |
6 | 01102 | −6 | 10012 |
7 | 01112 | −7 | 10002 |
結局、n 桁の二進数の k + 1 桁目の値を bk ∈ {0, 1} とすれば、1の補数表現は以下のように表せる:
1の補数で表される数は、対応する二進数表示の最上位の値 bn−1 が 0 なら負でない値を取り、1 なら正でない値を取る。
1の補数表現において、二進数をビット列とみなせば、符号の反転はビット列 x のビットを反転[注 2]することによって行える。x とそれをビット反転させた fx は常に以下を満たす:
上記より、x の1の補数は xc = fx と表せる。従って減法は、
と書き換えられる。ビット反転が反数に対応することから、0 は 000...002 と 111...112 の2つの表現方法を持つ。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.