|
Beispiele für numerische Codes Einige der vorgestellten numerischen Codes haben ihre Bedeutung mit dem Fortschreiten der technischen Entwicklung verloren. Sie wurden entwickelt, um beim Bau von Rechenanlagen elektrische oder elektronische Komponenten zu sparen (z. B. Rundungserkennung). Die Namen der Codes sollte man aber zumindest einmal gehört haben. Dualcode Der Dualcode ist ein reiner Binärcode, der der Zahlendarstellung im Dualsystem entspricht --> wortorganisierte binäre Codierung, einfache Arithmetik, Umcodierung bei Ein-/Ausgabe oder Übertragung relativ schwierig. BCD-Codes (binary coded decimal) Jede Ziffer einer Dezimalzahl wird unabhängig codiert --> ziffernorganisierte binäre Codierung. Es entsteht eine gemischte Darstellung; die Ziffernstruktur der Objektmenge bleibt erhalten und jeder Dezimalziffer wird ein binäres Codewort zugeordnet. Zur Darstellung werden 4 Bit benötigt --> tetradischer Code. Das Codewort für eine Ziffer wird Tetrade genannt. Von den insgesamt 16 Tetraden werden nur 10 Nutztetraden benötigt --> 6 Pseudotetraden. Die Aufteilung der 16 Tetraden in Nutz- und Pseudotetraden führt zu verschiedenen tetradischen Codes. In der Digitaltechnik haben nur einige Möglichkeiten Bedeutung gewonnen.
- 8-4-2-1-Code (oft als "BCD-Code" bezeichnet)
- direkte Darstellung der Ziffern 0-9 im Dualcode
- gewichteter Code
Jede Stelle der Tetrade besitzt ein bestimmtes Gewicht (8-4-2-1).
Die Summe aus allen Dualziffern, jeweils multipliziert
mit ihrem Gewicht, ergibt den Wert der codierten Dezimalzahl,
z. B.: 0101 --> 0*8 + 1*4 + 0*2 + 1*1 = 5
- monoton wachsend
- einfache Zähl- und Addierschaltungen (Korrektur beim Übertrag
notwendig!)
- Unterscheidung gerade/ungerade
- k e i n e einfache Bildung des Neunerkomplements möglich
- 2-4-2-1-Code (Aiken-Code)
- Pseudotetraden liegen in der Mitte
- gewichteter Code
- selbstkomplementierend (Vertauschen 0-1 ergibt Komplement)
- monoton wachsend
- Rundungserkennung (>5, <5)
- Unterscheidung gerade/ungerade
- Korrektur bei der Addition notwendig
- Übertrag stimmt mit Dezimalübertrag überein
- 5-4-2-1-Code (Biquinär-Code)
- Bezeichnung "biquinär" nicht eindeutig (gebildet aus
"binär" (Basis 2) und "quinär" (Basis 5)
- gewichteter Code
- je drei Pseudotetraden in der Mitte und am Ende
- monoton wachsend
- nicht selbstkomplementierend
- Rundungserkennung (>5, <5)
- keine Unterscheidung gerade/ungerade
- das 1-Wort (1111) wird vermieden
- Exzeß-3-Code (Stibitz-Code)
- Bildungsgesetz: Addition von 0011 zur Dualzahl
- ungewichteter Anordnungscode
- selbstkomplementierend
- monoton wachsend
- Unterscheidung gerade/ungerade
- Rundungserkennung (>5, <5)
- einfache Korrektur der Pseudotetraden bei der Addition
- 0- und 1-Wort werden vermieden
Mehrstellige BCD-Codes (n > 4, nicht tetradisch)
Häufig werden für die Codierung der Dezimalziffern mehr als vier
Binärstellen verwendet --> Übertragungssicherheit, Ausgabe, etc.
Bedeutung haben fast nur Codes mit gleicher Anzahl der 1-Bits in
allen Codeworten --> gleichgewichtige Codes --> hohe Redundanz.
Ein Code mit dem Coderahmen (Wortlänge) n, dessen Nutzwörter alle
m 1-Bits besitzen heißt m-aus-n-Code. Beispiele:
- 2-aus-5-Code (n = 5, m = 2)
- bis auf die Null monoton wachsend
- bis auf die Null gewichteter Code
- Einsatz: Strichcode (5 Striche, 3 schmal, 2 breit) (Postleitzahlencodierung)
- 2-aus-5-Walking-Code
- Beim "Walking Code" wechseln beim Übergang zum nächsten
Codewort jeweils zwei benachbarte Sysmbole ihren Wert (ein Bit ist 0, das andere 1)
- nicht monoton wachsend
- nicht gewichtet
- zyklisch permutierend: Bildungsgesetz gilt auch für den Übergang 9 --> 0
- Biquinärcode (2-aus-7-Code)
- spezieller 2-aus-7-Code, der aus einer 2-Bit- und einer 5-Bit-Gruppe
besteht (Kombination 1-aus-2-Code und 1-aus-5-Code).
- gewichteter Code
- Rundungserkennung (>5, <5)
- geeignet für Zählfunktionen
- leichte Komplementierung (Spiegelung) 0 = 01 00001, 9 = 10 10000
- unwirtschaftlich (große Länge)
- 1-aus-10-Code
- gewichteter Code
- monoton wachsend
- sehr übersichtlich
- großer Aufwand
- Anwendung zur Anzeige, numerische Tastaturen
- Kettencode
Nebenbemerkung: Kettencodes sind n-Bit-Codes, bei denen über eine zyklische
Anordnung von maximal 2 Bits ein Ablesefenster verschoben wird,
das n aufeinanderfolgende Bits herausgreift. Für n=3 ist das z. B.
mit der folgenden Anordnung von 8 Bits möglich:
Einschrittige BCD-Codes
Bisher haben sich beim Übergang von einem Codewort zum nächsten
mehrere Bits geändert --> mehrschrittige Codes. Bei Abtastvorrichtungen
für die Längenmessung oder bei der Analog-Digital-Wandlung gibt es
mit solchen Codes Fehlentscheidungen, wenn Abtastung und Signalwechsel
gleichzeitig erfolgen --> Bei einschrittigen Codes unterscheiden sich
benachbarte Codeworte nur in einem Bit. Beispiele:
- Gray-Code
- nicht gewichteter Code
- nicht monoton wachsend
- 16-er-Teilung (9-->0 nicht einschrittig)
- ungeeignet für die Weiterverarbeitung (Umcodierung!)
- leicht umcodierbar in den 8-4-2-1-Code
- tetradischer Code
- Unterscheidung gerade/ungerade (gilt für alle einschrittigen
Codes gerade/ungerade Anzahl von 1-Bits)
- Glixon-Code
- 0 .. 8 identisch mit Gray-Code
- 9 so, daß Übergang 9 -> 0 einschrittig ist (zykl. permutiert)
- O'Brien-Code
- tetradischer Code
- zyklisch permutierend
- nicht gewichtet
- nicht monoton wachsend
- Rundungserkennung (>5, <5)
- Vermeidung von 0- und 1-Wort
- einfache Komplementbildung (Invertierung des MSB)
- Libway-Craig-Code
- 5-stelliger Code
- zyklisch permutierend
- nicht gewichtet
- nicht monoton wachsend
- Rundungserkennung (>5, <5)
- "gepackte" Folge der 1-Bits
- Code des Johnson-Zählers
Mehrschrittige Anordnungscodes
Codes für spezielle Aufgaben. Als Beispiel 7-Segment-Code für
Ziffernanzeigen.
|
| |