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

BCD und Gray-Code: Spezialisierte Binärkodierungen | YounitConverter