FE EXAM

1の補数(全ビットを反転させた数)

元の2進数の各ビットを反転(0↔1)したものが「1の補数」です。元の数と1の補数を足すと必ず全ビット1(=255)になる性質を確認しながら学びましょう。

INTERACTIVE VISUALIZATION
元の値
1の補数
元の値(10進)
181
元の値(2進)
10110101
1の補数(10進)
74
1の補数(2進)
01001010
元の値(10進)181
0255
プリセット
元の値のビットをクリックして反転してみてください。それぞれの位置で0↔1がひっくり返ると、すぐ下の1の補数でも反対側のビットが切り替わります。
元の値(クリックで反転できます) = 181
↓ 全ビット反転(0↔1)
1の補数 = 74
0
1
0
0
1
0
1
0
検算
181+74=255(必ず 255 = 11111111)
2進数で見ると:10110101 + 01001010 = 11111111
解説

📌
1の補数とは

各ビットを反転するだけ元の値101101011の補数01001010

1の補数とは、ある2進数の各ビットを反転(0は1に、1は0に)した数のことです。たった1ルールで作れるので、コンピュータの回路でも簡単に実装できます。

数学的には「全ビットが1の値(8ビットなら255)から元の数を引いた値」と等しくなります。
・181(10110101)の1の補数 = 74(01001010
・255 - 181 = 74(一致)

上のツールでビットを1つだけクリックして反転させてみてください。元の値が変わると、1の補数では反対側のビットがすぐに切り替わります。これが「1の補数 = 全ビット反転」のシンプルさです。

📌
全ビット反転で求める手順

手順: 各ビットを反転(0→1、1→0)するだけ10110101→ 1の補数 01001010検算: 元 + 1の補数 = 全ビット1 = 255(8ビットなら)

1の補数の求め方は非常に単純で、左から右へ順番にビットを反転するだけです。8ビットでも32ビットでも、同じ操作を繰り返せばできます。

確実に求められたかを確かめるコツは「足し算してみる」ことです。元の値と1の補数を加算すると、必ず全ビット1(8ビットなら255)になります。これは反転前後で各桁が必ず「0と1のペア」になるため、足すと「1」になり、それが全ての桁で起きるからです。

ツールの下部にある検算ボックスに 元 + 1の補数 = 255 と表示されているか確認してください。どんな値でこの計算をしても、必ず255になります。

📌
2の補数との違い

例: 元の値 5 → 各補数00000101(= 5)1の補数11111010(全反転)2の補数11111011(1の補数 + 1)2の補数 = 1の補数の最下位ビットに +1 する

1の補数は単独でも使われますが、コンピュータでよく使われるのは2の補数のほうです。両者の違いは小さく、「2の補数 = 1の補数 + 1」という関係にあります。

2の補数が好まれる理由:
0の表現が一つだけになる(1の補数では「+0」と「-0」が両方存在してしまう)
引き算が足し算に変わるので、加算回路だけで減算もできる
・表現できる負の数が1つ多い(8ビットなら -128 まで)

1の補数2の補数を求めるときは、まず1の補数を出してから+1するのが安全です。手順を分けることでミスが減ります。1の補数は2の補数を作るための踏み台、と覚えておきましょう。

関連コンテンツ