BCD und Gray-Code

Spezialisierte Binärkodierungen

Spezialkodierungen entdecken

Nicht alle Binärdarstellungen sind reines Basis-2. BCD (Binary-Coded Decimal) und Gray-Code sind spezialisierte Kodierungen, die bestimmte Probleme in digitalen Systemen lösen – von der Anzeige von Zahlen auf Taschenrechnern bis zum fehlerfreien Ablesen von Drehgebern.

Binary-Coded Decimal (BCD)

Was ist BCD?

BCD stellt jede Dezimalziffer als 4-Bit-Binärzahl dar:

DezimalBCDReines Binär
000000000
501010101
910011001
100001 00001010
420100 0010101010
991001 10011100011

Wesentlicher Unterschied

BCD verwendet 4 Bits pro Dezimalziffer; reines Binär ist kompakter, aber schwieriger anzuzeigen.

Warum BCD verwenden?

Einfache Dezimalanzeige

  • Jede 4-Bit-Gruppe → eine Ziffer auf einer 7-Segment-Anzeige
  • Keine aufwendige Binär-zu-Dezimal-Umwandlung erforderlich
  • Taschenrechner und Messgeräte nutzen dies

Exakte Dezimalwerte

  • Finanzberechnungen erfordern exakte Dezimalwerte
  • 0,10 ist in BCD exakt, in binärer Gleitkommadarstellung nur näherungsweise
  • Vermeidet Rundungsfehler bei Währungsberechnungen

Menschenlesbare Speicherung

  • Zeitstempel werden häufig in BCD gespeichert
  • Einfach in Hex-Dumps zu lesen
  • BIOS-Echtzeituhren verwenden BCD

BCD-Arithmetik

Herausforderung bei der Addition

BCD-Addition erfordert eine Korrektur, wenn das Ergebnis > 9 ist:

  • 0101 + 0100 = 1001 (5 + 4 = 9) ✓ Gültiges BCD
  • 0111 + 0101 = 1100 (7 + 5 = 12) ✗ Ungültiges BCD
  • Es muss 6 (0110) zur Korrektur addiert werden: 1100 + 0110 = 0001 0010 = 12

Warum 6 addieren?

BCD verwendet nur die Werte 0000-1001 (0-9). Die Werte 1010-1111 (10-15) sind ungültig. Die Addition von 6 erzeugt einen Übertrag in die nächste Stelle.

BCD-Varianten

Gepacktes BCD

  • Zwei Ziffern pro Byte
  • Effizientere Speicherung
  • Beispiel: 42 = 0100 0010 in einem Byte

Ungepacktes BCD

  • Eine Ziffer pro Byte (obere 4 Bits ungenutzt/null)
  • Einfachere Verarbeitung
  • Beispiel: 42 = 00000100 00000010 (zwei Bytes)

Exzess-3-BCD

  • Zu jeder Ziffer wird vor der Kodierung 3 addiert
  • Vereinfacht bestimmte Arithmetikschaltungen
  • 0 = 0011, 9 = 1100

Gray-Code

Was ist Gray-Code?

Der Gray-Code ist eine Binärfolge, bei der sich zwischen aufeinanderfolgenden Werten nur ein Bit ändert:

DezimalBinärGray-Code
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100

Warum der Gray-Code wichtig ist

Das Problem, das der Gray-Code löst

Im regulären Binärsystem ändern sich beim Übergang von 7 (0111) zu 8 (1000) vier Bits gleichzeitig.

  • Wenn Sensoren nicht exakt gleichzeitig umschalten
  • Treten kurzzeitige Fehlablesungen auf
  • Es könnte kurzzeitig 0000, 0001, 0011, 0111 oder 1111 gelesen werden

Die Gray-Code-Lösung

  • Es ändert sich immer nur ein Bit
  • Keine mehrdeutigen Zwischenzustände
  • Unverzichtbar für Positionsgeber

Anwendungen des Gray-Codes

Drehgeber

  • Motorpositionserfassung
  • Lautstärkeregler (digital)
  • Robotik-Gelenkwinkel
  • CNC-Maschinenpositionierung

Fehlerminimierung

  • Analog-Digital-Wandlung
  • Genetische Algorithmen (Crossover)
  • Karnaugh-Diagramme (Logikminimierung)

Kommunikation

  • Einige fehlerkorrigierende Codes
  • Bestimmte Modulationsverfahren

Umwandlung von Binär in Gray-Code

Methode

  1. Das höchstwertige Bit (MSB) bleibt gleich
  2. Jedes Bit wird mit dem links danebenliegenden Bit per XOR verknüpft

Beispiel: 1011 (binär) in Gray-Code umwandeln

  • MSB: 1 (beibehalten)
  • 1 XOR 0 = 1
  • 0 XOR 1 = 1
  • 1 XOR 1 = 0
  • Ergebnis: 1110 (Gray)

Formel

Gray[i] = Binary[i] XOR Binary[i+1]

Gray[MSB] = Binary[MSB]

Umwandlung von Gray-Code in Binär

Methode

  1. Das MSB bleibt gleich
  2. Jedes Gray-Bit wird mit dem vorherigen Binär-Bit per XOR verknüpft

Beispiel: 1110 (Gray) in Binär umwandeln

  • MSB: 1 (beibehalten)
  • 1 XOR 1 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • Ergebnis: 1011 (binär)

Fazit

BCD und Gray-Code sind spezialisierte Binärkodierungen, die bestimmte Probleme lösen. BCD vereinfacht die Dezimalanzeige und gewährleistet exakte Dezimalarithmetik – wichtig für Taschenrechner und Finanzsysteme. Der Gray-Code stellt sicher, dass sich zwischen aufeinanderfolgenden Werten nur ein Bit ändert – unverzichtbar für Positionsgeber und Fehlervermeidung. Auch wenn keines von beiden so verbreitet ist wie reines Binär, zeigt ihr Verständnis, wie unterschiedliche Zahlendarstellungen verschiedenen technischen Anforderungen dienen.

Verwandte Artikel