Gray-Code aus Binär
Der Gray-Code wird aus dem Binärwert mit G = n XOR (n ≫ 1) gebildet. Zwei aufeinanderfolgende Gray-Code-Werte unterscheiden sich genau in einem Bit.
Gray-Code aus Binär berechnen
Der Gray-Code wird aus dem Binärwert mit G = n XOR (n ≫ 1) gebildet. Zwei aufeinanderfolgende Gray-Code-Werte unterscheiden sich genau in einem Bit.
Worum geht es?
Der Gray-Code (auch reflektierter Binärcode) ist eine Kodierung, bei der sich zwei aufeinanderfolgende Werte in genau einem Bit unterscheiden — der Hamming-Abstand ist konstant 1. Das verhindert Lesefehler bei mechanischen Drehgebern, wo beim Übergang zwischen zwei Positionen kurzzeitig „Zwischenzustände" entstehen können.
Die Umwandlung ist überraschend einfach: Den Binärwert mit seiner um eins nach rechts geschobenen Kopie XOR-verknüpfen.
Die Formel
G = n XOR (n ≫ 1)Die Variablen
| Symbol | Bedeutung | Einheit | Erklärung |
|---|---|---|---|
| n | Binärwert | — | Dezimaläquivalent des Binärwerts. |
| G | Gray-Code-Wert | — | Dezimaläquivalent des Gray-Codes. |
Minimal-Beispiel
Wandle n = 5 (101₂) in Gray:
n = 101
n ≫ 1 = 010
───────────── XOR
G = 111 (= 7)Praxis-Beispiele
Beispiel 1 — Zähltabelle 3 Bit
n Binär Gray
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100Jeder Schritt ändert genau ein Bit.
Beispiel 2 — Großer Wert
Wandle n = 27:
n = 11011
n ≫ 1 = 01101
────────────── XOR
G = 10110 (= 22)Beispiel 3 — Drehgeber-Anwendung
Ein 10-Bit-Absolutgeber löst 1024 Positionen pro Umdrehung auf. Die Codescheibe ist in Gray kodiert, damit beim Übergang z. B. von Position 511 (0111111111) auf 512 (1000000000) nicht alle 10 Bit gleichzeitig kippen — in Gray ändert sich nur ein einziges Bit, kurzzeitige Mehrdeutigkeiten werden ausgeschlossen.