/ Zahlensysteme & Kodierung

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

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.

G = n XOR (n 1)

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

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

Die Variablen

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

Minimal-Beispiel

Wandle n = 5 (101₂) in Gray:

Rechnung n = 5
n       = 101
n ≫ 1   = 010
─────────────  XOR
G       = 111  (= 7)

Praxis-Beispiele

Beispiel 1 — Zähltabelle 3 Bit

Rechnung Tabelle
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     100

Jeder Schritt ändert genau ein Bit.

Beispiel 2 — Großer Wert

Wandle n = 27:

Rechnung 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.