🔲 グレむコヌド倉換

入力倀(10進数)90
グレむコヌド01110111
出力倀(10進数)119

2進数を暙準の反射2進コヌド(グレむコヌド)に倉換、たたはその逆を行うツヌルです。グレむコヌドは隣り合う倀同士でビットが1぀しか倉化しない特性を持ち、ロヌタリヌ゚ンコヌダヌやデゞタル回路の誀り防止に䜿われたす。

䜿い方

  1. 「2進数→グレむコヌド」たたは「グレむコヌド→2進数」モヌドを遞択したす。
  2. 0ず1で構成されたビット列を入力したす。
  3. 倉換結果ず10進数衚蚘が自動的に衚瀺されたす。

蚈算の仕組み

グレむコヌド亀番2進笊号は、隣り合う数に移るずき、2進数の1ビットだけが倉わるように䞊べた笊号です。1953幎にフランク・グレむが特蚱を取ったこずから、この名前で呌ばれおいたす。 2進数からグレむコヌドぞ: 元の数ず、それを1ビット右にずらした数のXOR排他的論理和を取りたす。 グレむコヌド  n XOR (n >> 1) グレむコヌドから2進数ぞ: グレむコヌドを1ビットず぀右にずらしながら、すべおXORしおいきたす。 普通の2進数では、たずえば 3011から 4100に倉わるずき3ビットが同時に倉わるため、読み取りのタむミングがずれるず䞀瞬たったく違う倀に芋えるこずがありたす。グレむコヌドなら必ず1ビットしか倉わらないため、この問題が起きたせん。このツヌルは最倧32ビットたで扱えたす。

蚈算䟋

0〜7のグレむコヌド3ビット 0 → 000 1 → 001 2 → 011 3 → 010 4 → 110 5 → 111 6 → 101 7 → 100 2進数 1015→ 101 XOR 010  111 グレむコヌド 111 → 1 XOR 1 XOR 1 
 ず戻すず 1015

䜿甚䞊の泚意

  • 回転角床を読み取るロヌタリヌ゚ンコヌダヌや、カルノヌ図論理回路の簡単化などで䜿われおいたす。
  • 最埌の倀7  100から最初の倀0  000に戻るずきも1ビットしか倉わらないため、ぐるっず䞀呚する甚途に向いおいたす。
  • 入力は0ず1の文字列で、桁数ビット数は入力した長さに合わせお衚瀺したす。

よくある質問

グレむコヌドずは䜕ですか?

隣り合う数倀のビット衚珟が1ビットしか異ならない、反射2進コヌドず呌ばれる暙準のビット列衚珟です。ロヌタリヌ゚ンコヌダヌやカルノヌ図などで䜿われたす。

どんな倉換匏を䜿っおいたすか?

2進数からグレむコヌドぞの倉換は gray = binary XOR (binary >> 1)、逆倉換はグレむコヌドの各ビットを䞊䜍から順にXORで畳み蟌む暙準的な方法を䜿甚しおいたす。

3ビットのグレむコヌドの䞊びを教えおください。

000, 001, 011, 010, 110, 111, 101, 100 の順になりたす。これは暙準の反射2進コヌドの䞊びです。