Gray Code
隣り合う値が 1 ビットだけ異なる二進符号です。 の式で生成でき、デジタル通信やエンコーダーで広く使われます。
定義
非負整数 に対して、Gray code は次の式で定義されます。
は排他的論理和(XOR)、 は右シフトを表します。
Step 1 / 8
| i | Binary | Gray Code | Dec | Changed Bit | |
|---|---|---|---|---|---|
| 0 | 000 | 000 | 000 | 0 | — |
| 1 | 001 | 000 | 001 | 1 | ··▼ |
| 2 | 010 | 001 | 011 | 3 | ·▼· |
| 3 | 011 | 001 | 010 | 2 | ··▼ |
| 4 | 100 | 010 | 110 | 6 | ▼·· |
| 5 | 101 | 010 | 111 | 7 | ··▼ |
| 6 | 110 | 011 | 101 | 5 | ·▼· |
| 7 | 111 | 011 | 100 | 4 | ··▼ |
ステップ 1 の計算
- 2 進数: 000 (0)
- 右シフト: 000 (0)
- XOR 結果: 000 (0)
Gray Code の性質
- 隣り合う値同士の Hamming 距離は常に 1 です。
- 最後の値と最初の値も 1 ビットだけ異なり、巡回的です。
- 誤り訂正、デジタル通信、ロータリーエンコーダーなどで使われます。