/ Zahlensysteme & Kodierung

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
01 · Eingabe

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) …

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

Formel Binär aus Gray
n = G XOR (G ≫ 1) XOR (G ≫ 2) XOR (G ≫ 3) …

Die Variablen

SymbolBedeutungEinheitErklärung
GGray-Code-WertDezimaläquivalent des Gray-Codes.
nBinärwertDezimaläquivalent des Binärwerts.

Minimal-Beispiel

Wandle G = 7 (111₂) zurück:

Rechnung G = 7
G        = 111
G ≫ 1    = 011
G ≫ 2    = 001
──────────────  XOR
n        = 101  (= 5)

Praxis-Beispiele

Beispiel 1 — Iterative Schleife

Pseudocode Algorithmus
n  ← G
s  ← G ≫ 1
solange s ≠ 0:
    n ← n XOR s
    s ← s ≫ 1
Ergebnis: n

Beispiel 2 — Großer Wert

Wandle G = 22 (10110₂) zurück:

Rechnung G = 22
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.