グレイコードって初めて聞きました。
誤り検出のためのコードみたいで、修正はできないようですね。
10進→2進→グレイコード
0→0000→0000
1→0001→0001
2→0010→0011
3→0011→0010
4→0100→0110
見てわかるように、グレイコードは必ず1ビットしか変わらないので、エラーの検出が早くできるのが売りのようです。
---
大体の簡単な仕組みを妄想します。(初めて聞くのでw)
あらかじめ発生器側(ハード)に10進とクレイコードの対応表を設定しときます。
で、受信機側でもやはりグレイコードと10進の対応表を持っていて、10進に変換するようにしていると思います。
---
普通?
発生器側2→0010→受信機側2
グレイコード
発生器側2→0011→受信機側2
---
ただ発生器側で連続した値を送るだけだと、エラーの検出ができないので、送るパターンに規則性(この場合1ビットしか変わらない)を持たせて、次の状態に遷移した時、それを外れればエラーとする。
賢いですよね。
シフト演算とかもそうですが、コンピュータは2進なので2進で簡単にできる方法を考え出す、賢い人にはかないません。
ついていくのは私も含めて大変ですが、頑張ってください。
スルーでお願いしています。