Binär aus Gray-Code
Rückwandlung Gray → Binär durch sukzessives XOR mit allen rechts-geschobenen Versionen: n = G XOR (G ≫ 1) XOR (G ≫ 2) …
Binär aus Gray-Code berechnen
Rückwandlung Gray → Binär durch sukzessives XOR mit allen rechts-geschobenen Versionen: n = G XOR (G ≫ 1) XOR (G ≫ 2) …
Worum geht es?
Die Rückwandlung Gray → Binär ist aufwendiger als die Hinwandlung: Man muss den Gray-Code mit allen seinen rechtsgeschobenen Versionen XOR-verknüpfen, bis nichts mehr übrig ist. Das höchstwertige Bit bleibt dabei stets erhalten.
Praktisch implementiert man das als Schleife, die G um 1 schiebt und mit dem bisherigen Ergebnis XOR-verknüpft, solange G ungleich 0 ist.
Die Formel
n = G XOR (G ≫ 1) XOR (G ≫ 2) XOR (G ≫ 3) …Die Variablen
| Symbol | Bedeutung | Einheit | Erklärung |
|---|---|---|---|
| G | Gray-Code-Wert | — | Dezimaläquivalent des Gray-Codes. |
| n | Binärwert | — | Dezimaläquivalent des Binärwerts. |
Minimal-Beispiel
Wandle G = 7 (111₂) zurück:
G = 111
G ≫ 1 = 011
G ≫ 2 = 001
────────────── XOR
n = 101 (= 5)Praxis-Beispiele
Beispiel 1 — Iterative Schleife
n ← G
s ← G ≫ 1
solange s ≠ 0:
n ← n XOR s
s ← s ≫ 1
Ergebnis: nBeispiel 2 — Großer Wert
Wandle G = 22 (10110₂) zurück:
G = 10110
G ≫ 1 = 01011
G ≫ 2 = 00101
G ≫ 3 = 00010
G ≫ 4 = 00001
─────────────── XOR
n = 11011 (= 27)Beispiel 3 — Komplementäre Selbstkontrolle
Wendest Du erst die Gray-Hin- und anschließend die Rück-Wandlung an, erhältst Du immer den ursprünglichen Wert — ein nützlicher Sanity-Check in Hardware-Tests.