の グレーコード は 2 進数システムのシーケンスであり、としても知られています。 反映されたバイナリコード 。このコードを反映バイナリ コードと呼ぶ理由は、最初の N/2 値と最後の N/2 値を逆の順序で比較するためです。このコードでは、2 つの連続する値は 2 進数の 1 ビットだけ異なります。グレイ コードは、ハードウェアが生成する 2 進数の一般的なシーケンスで使用されます。これらの数値は、ある数値から次の数値に移行するときにあいまいさまたはエラーを引き起こします。このコードは、数値間の遷移が行われるときに 1 ビットだけを変更することで、この問題を単純に解決します。
グレイ コードは、位置で指定された桁の値に依存しないため、非常に軽量なコードです。このコードは、1 つの値から次の値への遷移で 1 ビットのみの変化が生じるため、循環変数コードとも呼ばれます。
グレイコードを生成するにはどうすればよいですか?
プレフィックスとリフレクト メソッドは、数値のグレイ コードを生成するために再帰的に使用されます。グレイコードを生成するには:
- 数値を表現するために必要なビット数を求めます。
- 次に、0 のコード、つまり 0000 を見つけます。これは 2 進数と同じです。
- ここで、前のコード、つまり 0000 を取得し、その最上位ビットを変更します。
- すべてのコードが一意に識別されなくなるまで、このプロセスを隠蔽的に実行します。
- 最上位ビットを変更して、以前に取得したのと同じコードが見つかった場合は、2 番目の最上位ビットが変更されます。
グレイコード生成のプロセス
グレイコード表
10進数 | 2進数 | グレーコード |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
十一 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |