エンコード | デコード | 可視化

> グレイ | 反射 | 2進 <

// グレイコード - 連続する値の間で1ビットだけが変化する2進数体系

0 文字
0 文字

>> 機能

[SINGLE-BIT]

ユニットディスタンス

連続する値の間で変化するのは常に1ビットだけです。

[ERROR-REDUCTION]

エラー低減

アナログ-デジタル変換時の誤りを減らします。

[CYCLIC]

循環特性

最初と最後の値も1ビットだけが異なるように設計されています。

>> 技術情報

グレイコードの仕組み

グレイコード(反射2進コード)は、連続する2つの値が常に1ビットだけ異なるように構成された2進数体系です。各ビットを直前のビットとXORすることで生成されます。この特性により、位置エンコーダやデジタルシステムでの遷移エラーを抑える用途に適しています。

グレイコードの例

Decimal | Binary | Gray Code
0       | 0000   | 0000
1       | 0001   | 0001
2       | 0010   | 0011
3       | 0011   | 0010
4       | 0100   | 0110
5       | 0101   | 0111
6       | 0110   | 0101
7       | 0111   | 0100

注: 連続するグレイコード間では常に1ビットだけが変化します

グレイコードを使う理由

  • ロータリーエンコーダ
  • カルノー図 (Karnaugh map)
  • エラー訂正
  • デジタル通信
  • 位置センサー

>> よくある質問

グレイコードとは何ですか?

グレイコードは、反射2進コードとも呼ばれる符号で、連続する値が常に1ビットだけ異なるように設計された2進コードです。遷移の途中で誤った値を読み取ってしまう問題を防ぐため、デジタルシステムで広く利用されています。

バイナリからグレイコードへはどう変換しますか?

バイナリからグレイコードへの変換手順: 1) 最上位ビット (MSB) はそのままにする、2) それ以降の各ビットについて、現在のビットと直前のビットのXORをとる。式: G[i] = B[i] XOR B[i-1]。例えば、バイナリ 1011 はグレイコード 1110 になります。

なぜエンコーダにグレイコードが適しているのですか?

通常の2進数では、7 (0111) から 8 (1000) へのように複数ビットが同時に変化することがあり、その途中の不正な状態が読み取られる可能性があります。グレイコードなら1ステップごとに1ビットしか変化しないため、ロータリーエンコーダなどでの読み取りが安定します。

グレイコードはどこで使われていますか?

グレイコードはロータリーエンコーダ、カルノー図による論理簡略化、デジタル通信におけるエラー訂正、遺伝的アルゴリズム、A/Dコンバータなど、多くの分野で利用されています。