AZ Tools

グレイコード変換器

変換

グレイコード(反射2進)は、連続する2つの値が正確に1ビットだけ異なる2進数の並び方。この1ビット変化の性質は、ロータリーエンコーダ・カルノー図・誤りに強い位置検出で価値がある — 複数ビットが同時に反転する際の過渡的な中間値が現れないため。2進数は g = b XOR (b >> 1) でグレイに変換し、デコードは累積XORでビットをたどる。このツールはすべての方向で変換し、10進数・通常の2進数・グレイ符号値を入力すると他の表現を表示する。固定ビット幅を選ぶと固定レジスタ表示用に0埋めできる。

10進数
42
2進数
101010
グレイコード
111111
対照表 (0-7)
10進数2進数グレイコード
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

2進 → グレイ: g = b XOR (b >> 1)。連続するグレイ値は正確に1ビット差。ビット幅は出力の0埋めのみ。

使い方

  1. 入力が10進数・2進数・グレイコードのどれかを選ぶ。
  2. 値を入力すると、10進・2進・グレイの形が即座に更新される。
  3. ビット幅(4・8・16・32)を設定して2進・グレイ出力を0埋めできる。

よくある質問

グレイコードは何に使いますか?
ロータリー・リニア位置エンコーダ、カルノー図の並び、そして遷移時のグリッチを避けるため隣接状態間で1ビットだけ変化させたいあらゆるシステム。
2進数をグレイコードにどう変換しますか?
数値を右に1ビットシフトした値とXOR: gray = n ^ (n >> 1)。デコードは最上位ビットから連鎖XORで戻す。
2進数の2(10)・3(11)がグレイ11・10になるのはなぜ?
グレイコードは連続値間の1ビット差を保証する。2進では2→3で最後のビットだけ反転するが、グレイ列は各ステップを1ビット変化に保つよう反射する。
大きな数も扱えますか?
はい — 変換は任意精度整数を使うので、32・64ビットを大きく超える値も正確に変換する。ビット幅オプションは表示の0埋めのみ。

関連ツール