BCD (Zeichenkodierung)
Einstufung | 6-Bit alphanumerisch Grundlatein Codierungen |
---|---|
gefolgt von | Ebcdic |
BCD (Binärcodierte Dezimalzahl), auch genannt Alphanumerische BCD, Alphamerer BCD, BCD -Austauschcode,[1] oder BCDIC,[1] ist eine Familie von Darstellungen von Ziffern, lateinamerikanischen Buchstaben und einigen besonderen und kontrollierenden Zeichen als Sechs-Bit-Zeichencodes.
Im Gegensatz zu späteren Codierungen wie z. ASCIIBCD -Codes wurden nicht standardisiert. Verschiedene Computerhersteller und sogar verschiedene Produktlinien desselben Herstellers hatten oft ihre eigenen Varianten und beinhalteten manchmal einzigartige Zeichen. Andere sechs-Bit-Codierungen mit völlig unterschiedlichen Zuordnungen wie einige Fieldata[1] Varianten oder Transcode, werden manchmal fälschlicherweise BCD bezeichnet.
Viele Varianten von BCD codieren die Zeichen '0' durch '9' als entsprechende Binärwerte.
Geschichte
Technisch, Binärcodierte Dezimalzahl Beschreibt die Codierung von Dezimalzahlen, bei denen jede Dezimalziffel durch eine feste Anzahl von Bits dargestellt wird, normalerweise vier.
Mit der Einführung der IBM -Karte Im Jahr 1928 schuf IBM a Code[a] in der Lage, alphanumerische Informationen darzustellen,[2] später von anderen Herstellern übernommen. Dieser Code repräsentiert die Zahlen 0-9 durch einen einzelnen Schlag und verwendet mehrere Schläge für Buchstaben und Sonderzeichen.[3] Ein Brief hat zwei Schläge (Zone [12,11,0] + Ziffern [1–9]); Die meisten Sonderzeichen haben zwei oder drei Schläge (Zone [12,11,0 oder keine] + Ziffern [2–7] + 8).
Der BCD-Code ist die Anpassung des Lochkartencodes an einen Sechs-Bit Binärcode Durch die Codierung der Ziffernreihen (neun Reihen plus ungebuncht) in die niedrigen vier Bits und die Zonenreihen (drei Reihen plus ungebuntigt) in die hohen zwei Bits.[4] Die Ziffer Null (ein einzelner Schlag in Zeile 0) wird normalerweise in irgendeiner Weise speziell behandelt, und der Ziffercode wurde auf die Werte 10 bis 15 erweitert, indem eine Ziffer im Bereich 2–7 mit einem Schlag in Zeile 8 kombiniert wurde. IBM angewendet die Begriffe Binärcodierte Dezimalzahl und BCD zu den Variationen von BCD Alphamerika verwendet in den meisten frühen IBM -Computern, einschließlich der IBM 1620, IBM 1400 Serieund nichtDezimalarchitektur Mitglieder von IBM 700/7000 Serie.
Unter den Anbietern waren BCD Burroughs,[5] Stier, CDC,[6] IBM, General Electric (Die Computerabteilung wurde von gekauft von Honeywell im Jahr 1969),, Ncr, Siemens, und Sperry-Univac.
IBM kündigte den 8-Bit an Erweiterter binär codierter Dezimalstauschcode (EBCDIC), basierend auf BCDIC, 1964 mit der Einführung seiner System/360 Linie.
Spezielle Charaktere
Das Recordmark oder Aufzeichnungsmarke Zeichen (dargestellt als ‡) ist ein Zeichen, das zum Ende von a verwendet wird Aufzeichnung.[7] Der BCD -Code für dieses Zeichen beträgt 328 In einigen BCD -Varianten. Das nächstgelegene Unicode -Äquivalent ist U+29E7 ⧧ Thermodynamisch, aber das ist nicht in vielen Schriftarten zu finden U+2021 ‡ Doppeldolch wird oft stattdessen verwendet. Funktionell entspricht dies dem Ebcdic IRS Charakter (ASCII Rs), X'1e '.
Das Groupmark oder Gruppenmarke Charakter (dargestellt als ) ist ein Zeichen, das verwendet wird, um den Start oder die Finish einer Gruppe verwandter Felder anzuzeigen.[8] Der BCD -Code für dieses Zeichen ist 778 In einigen BCD -Varianten. Das Groupmark wurde 2015 für die Unicode -Standardisierung vorgeschlagen.[9] und wurde dem Wert zugewiesen U+2BD2 ⯒ Gruppe Mark. Funktionell entspricht dies dem Ebcdic IGs Charakter (ASCII Gs), X'1d '. Es ist jetzt in Unicode 10.0 an dieser Position, aber nur die Symbola- und Unifont -Schriftarten unterstützen es.
Das Wordmarkim Gegensatz dazu ist, ist nicht ein BCD -Charakter. Vielmehr ist es ein Flag -Bit, das das Ende eines Wortes auf einigen markiert Computer mit variabler Wortlänge so wie die IBM 1401.
BCD -Codevariationen
Es gibt viele verschiedene Versionen des Sechs-Bit-BCD-Code. Es gibt drei Hauptdifferenzkategorien:
- Die Kartierung von Zonenschlägen zu Bit hohen Ordnung. Alle Codes übersetzen keine Zone-Schläge in ein Bitmuster von 00, aber einige codieren die Zone-Schläge in 12-11-0 Reihenfolge, wobei die alphabetische Reihenfolge beibehalten wird, während andere 0-11-12 Reihenfolge verwenden, was zu einem teilweise umgekehrten Alphabet führt.
- Die Handhabung der Ziffer 0. Die unkomplizierte Übersetzung aus gestanzter Form würde den Leerzeichen vor den Ziffern 1–9 platzieren und 0 an einem anderen Ort codieren. Alle Codes verfügen über eine Spezialfallbehandlung, die entweder die Ziffer 0 in den All-Null-Binärcode übersetzt (und den Leerzeichen an anderer Stelle bewegt) oder den Binärcode 001010 (Dezimalzahl 10) und den 8+2 Punch an anderer Stelle verwendet.
- Die Zuordnung von Sonderzeichen. Die Zeichen, die Codes über den grundlegenden alphanumerischen Satz hinaus zugeordnet waren, variierten sehr, selbst innerhalb eines Computermodells.
In "spanischsprachigen Ländern" der Charakter "N" existierte daher im ursprünglichen System nicht "@" wurde von den meisten Herstellern ausgewählt: Bull-, NCR- und Kontrolldaten, aber es gab eine Inkonsistenz beim Zusammenführen von Datenbanken zu 7-Bit-ASCII-Code, denn in diesem Codierungssystem die "/" Das Zeichen wurde ausgewählt, was zu zwei verschiedenen Codes für dasselbe Zeichen führte.
Beispiele für BCD -Codes
Die folgenden Diagramme zeigen die numerischen Werte von BCD -Zeichen in hexadezimal (Basis-16) Notation, da dies die Struktur der 4-Bit-binären Dezimalzahl sowie zwei zusätzliche Bits am deutlichsten widerspiegelt. Zum Beispiel ist der Code für 'a' in Zeile 3x und Spalte X1 Hexadezimal 31 oder binär '11 0001 '.
Bandstil
48-Charakter-BCD-Code
Die ersten Versionen von BCDIC hatten 48 Zeichen, da sie auf Kartenpunschmustern und den Charaktersätzen von Druckern basierten, von denen keiner dazu ermutigte, eine zweifache Anzahl von Zeichen zu haben.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | |||
1x | / | S | T | U | V | W | X | Y | Z | , | % | |||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | * | ||||
3x | & | A | B | C | D | E | F | G | H | I | . | ⌑ |
Dies basierte auf einem 40-Zeichen-Stampfcode; Das Original 37 (10 Ziffern, 26 Buchstaben und leer) sowie drei kommerziell wichtige Zeichen, die um 1932 hinzugefügt wurden:[1]: 67 Bindestrich-Minus Wird zum Drucken von Kreditguthaben und beigebrachten Namen verwendet, die, die Et-Zeichen auch in vielen Namen und Adressen verwendet (Procter & Gamble, Mr. & Mrs. Smith) und die Sternchen Wird verwendet, um nicht verwendete Felder beim Drucken zu überdruckieren Überprüfungen.
IBM 1401 BCD -Code
Anstatt der Speicherdarstellung des IBM 704 zu folgen, IBM 1401 folgte der Banddarstellung (vom 48-Charakter-BCD abgestuft), weshalb der All-Null-Code für Blank und den Code 10 (0x0a) für die Ziffer Null verwendet wird. Es hatte Zeichenformen für alle möglichen Werte definiert, für Dokumentationszwecke,[10] Aber nur 48 der 63 Nicht-Blank-Zeichen waren druckbar, und es gab erhebliche Abweichungen darüber, wie die anderen Codewerte (in der folgenden Tabelle schattiert) in der Praxis dargestellt wurden. Sogar die anderen Zeichen variierten zwischen verschiedenen verfügbaren Druckketten für die IBM 1403 Drucker.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ¢ | / | S | T | U | V | W | X | Y | Z | ⧧ | , | % | = | ' | " |
2x | - | J | K | L | M | N | O | P | Q | R | ! | $ | * | ) | ; | Δ |
3x | & | A | B | C | D | E | F | G | H | I | ? | . | ⌑ | ( | < | ⯒ |
Code Seite 353
Die Seite BCDIC-A-Code wurde als zugewiesen als Code Seite 353, auch bekannt als CP353. Einige der Zeichen auf dieser Codeseite befinden sich nicht in Unicode. (Die Duplikation von '#' findet sich in IBMs eigenen Dokumentation und ist hier kein Fehler.[11]))
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ␢ | / | S | T | U | V | W | X | Y | Z | ⧧ | , | % | γ | \ | ⧻ |
2x | - | J | K | L | M | N | O | P | Q | R | ! | # | * | ] | ; | Δ |
3x | & | A | B | C | D | E | F | G | H | I | ? | . | ⌑ | [ | < | ⯒ |
Bei 0x1a ist die Datensatzmarke. Bei 0x3f ist die Gruppenmarke.
PTTC/BCD -Codeseiten
PTTC/BCD hatte 5 Optionen. Es gab fünf Code -Seiten. Sie sind unten gezeigt. Die Option PTTC/BCD Standard wurde als zugewiesen als Code Seite 355, oder CP355.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | ⧧ | , | γ | |||
2x | - | J | K | L | M | N | O | P | Q | R | < | $ | ||||
3x | & | A | B | C | D | E | F | G | H | I | ) | . |
Die Option PTTC/BCD H wurde als zugewiesen als Code Seite 357, oder CP357.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | ||||
1x | ' | / | S | T | U | V | W | X | Y | Z | ⧧ | , | ||||
2x | - | J | K | L | M | N | O | P | Q | R | ! | $ | ||||
3x | + | A | B | C | D | E | F | G | H | I | ? | . |
Die PTTC/BCD -Korrespondenzoption wurde als zugewiesen als Code Seite 358, oder CP358.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ||||
1x | ! | / | S | T | U | V | W | X | Y | Z | ⧧ | , | ||||
2x | - | J | K | L | M | N | O | P | Q | R | < | ; | ||||
3x | = | A | B | C | D | E | F | G | H | I | > | . |
Die Option PTTC/BCD Monocase wurde als zugewiesen als Code Seite 359, oder CP359.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | , | |||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | |||||
3x | & | A | B | C | D | E | F | G | H | I | . |
Die PTTC/BCD -Duocase -Option wurde als zugewiesen als Code Seite 360, oder CP360.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Platz | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | , | |||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | |||||
3x | & | A | B | C | D | E | F | G | H | I | . |
IBM 704 Speicherstil
IBM 704 BCD -Code
Der IBM 704 hat den BCDIC -Code neu angeordnet, um eine normale alphabetische Sammelordnung intern, mit 0 vor 1 und a vor Z zu ermöglichen. Er konnte beim Lesen und Schreiben automatisch zwischen dieser internen Form und dem früheren BCDIC übersetzt werden Magnetbänder.[12]: 35
Die folgende Tabelle zeigt die Codezuweisungen für die IBM 704 Computer. Nicht zugewiesene Codepositionen erscheinen als Lücken.[12]: 35
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ||||
1x | & | A | B | C | D | E | F | G | H | I | . | ⌑ | ||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | * | ||||
3x | Platz | / | S | T | U | V | W | X | Y | Z | ⧧ | , | % |
( und wurden selten Zeichen verwendet, die der Stuped-Card-Konvention einer Ziffer 0 mit einem überpolierten Zeichen in den Reihen 12 oder 11 entsprachen.)
Die folgende Tabelle zeigt die Codezuweisungen für die Geben Sie 716 Drucker ein verwendet mit dem IBM 704 -Computer und über den 7094.[12]: 58 Die 704 -Schnittstelle[b] Versande Zeilen mit virtuellen Panzkarten an diesen Drucker, zwei Wörter (72 Bit) gleichzeitig, sodass die Zuordnung von 6-Bit-BCD-Zeichen von Software durchgeführt wurde und nicht in den Drucker eingebaut wurde.
Zone schlagen | Digit Punch | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 8+3 | 8+4 | ||
Keiner | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | - |
12 | + | A | B | C | D | E | F | G | H | I | . | ⌑ |
11 | - | J | K | L | M | N | O | P | Q | R | $ | * |
0 | 0 | / | S | T | U | V | W | X | Y | Z | , | % |
Dies ist ein Repertoire von 45 Zeichen (nicht leer, das speziell vom Drucker behandelt wird) als Zeichen +
, -
und *
werden dupliziert.
FORTRAN -Charakter -Set
Es gab einige Variationen; IBM 704 Forran hatte einen anderen Satz von Sonderzeichen (nur das duplizierte minus Zeichen aufrechterhalten).[13]
Zone schlagen | Digit Punch | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 8+3 | 8+4 | ||
Keiner | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | - |
12 | + | A | B | C | D | E | F | G | H | I | . | )) |
11 | - | J | K | L | M | N | O | P | Q | R | $ | * |
0 | 0 | / | S | T | U | V | W | X | Y | Z | , | ( |
Ein ähnlicher Code wurde für die verwendet IBM 709, 7090 und 7094 Nachfolger,[14] Aber mit einigen der Sonderschiffe neu zugewiesen:
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | " | ||||
1x | & | A | B | C | D | E | F | G | H | I | . | ) | ||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | * | ||||
3x | Platz | / | S | T | U | V | W | X | Y | Z | ± | , | ( |
GBCD -Code
Unten finden Sie die Tabelle des GBCD -Code von GE/Honeywell, einer Variante von BCD.[15]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ | # | @ | : | > | ? |
1x | Platz | A | B | C | D | E | F | G | H | I | & | . | ] | ( | < | \ |
2x | ^ | J | K | L | M | N | O | P | Q | R | - | $ | * | ) | ; | '' |
3x | + | / | S | T | U | V | W | X | Y | Z | _ | , | % | = | " | ! |
Burroughs B5500 BCD -Code
Die folgende Tabelle zeigt die Codezuweisungen für die Burroughs B5500 Computer, manchmal als BIC bezeichnet (Burroughs Interchange Code).[16]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xa | xb | xc | XD | xe | xf | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ? | : | > | ≥ |
1x | + | A | B | C | D | E | F | G | H | I | . | [ | & | ( | < | ← |
2x | × | J | K | L | M | N | O | P | Q | R | $ | * | - | ) | ; | ≤ |
3x | Platz | / | S | T | U | V | W | X | Y | Z | , | % | ≠ | = | ] | " |
Siehe auch
Anmerkungen
Verweise
- ^ a b c d e Mackenzie, Charles E. (1980). Codierte Zeichensätze, Geschichte und Entwicklung (PDF). Die Systems -Programmierreihen (1 ed.). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. Lccn 77-90165. Archiviert von das Original (PDF) am 2016-05-26. Abgerufen 2017-04-22. [1]
- ^ Pugh, Emerson W.; Heide, Lars. "Sterne: Lochkartenausrüstung". IEEE Global History Network. Archiviert von das Original Am 2012-05-11. Abgerufen 2012-06-09.
- ^ Pugh, Emerson W. (1995). Aufbau von IBM: Gestaltung und Industrie und ihre Technologie. MIT Press. pp.50–51. ISBN 978-0-262-16147-3.
- ^ Jones, Douglas W. "Geschlagene Kartencodes". Abgerufen 2014-01-01.
- ^ Burroughs B5500 Informationsverarbeitungssysteme: Referenzhandbuch (PDF). Burroughs Corporation. 1964.
- ^ Steuerungsdatengesellschaft (1965). Codes/Steuerungsdaten 6600 Computersystem (PDF).
- ^ "Rekordmarkt". Enzyklopädie. PC Magazine. Abgerufen 2016-04-09.
- ^ "Gruppenmarke". Encyclopedia.com. Abgerufen 2016-04-09.
- ^ Shirriff, Ken. "Vorschlag für die Zugabe von Gruppenmarksymbol" (PDF). unicode.org. Abgerufen 2016-04-09.
- ^ IBM 1401 Datenverarbeitungssystem: Referenzhandbuch (PDF). IBM. April 1962. p. 170. A24-1403-5. Archiviert von das Original (PDF) Am 2012-03-14.
- ^ "Systeme I Software Globalisierung CP00353z" (PDF). www-03.ibm.com. Archiviert von das Original (PDF) 2013-01-21. Abgerufen 2022-06-30.
- ^ a b c IBM 704 Elektronischer Datenverarbeitungsmaschinenhandbuch des Betriebs (PDF). IBM. 1955. S. 35, 58. Form 24-6661-2. Abgerufen 2017-04-22.
- ^ "Das automatische Codierungssystem für das automatische Codierungssystem für IBM 704" (PDF). IBM. 1956-10-15. p. 49. Abgerufen 2015-09-15.
- ^ Harper, Jack (2001-08-21). "IBM 7090/94 Charakterdarstellung". Abgerufen 2017-04-22.
- ^ "Abschnitt: Tabellen von Zeichen in Bullencomputern" (PDF). Archiviert von das Original (PDF) Am 2011-07-08. Abgerufen 2010-11-15.
- ^ Burroughs B 5500 Informationsverarbeitungssysteme erweiterte Algol -Referenzhandbuch (PDF). 1966. p. B-1.
Weitere Lektüre
- Betriebssystem - GCOS 8 Betriebssystem - Programmierhandbuch - Bull Novascale 9000 Serien -Assembly -Anweisungen - GCOS 8 (PDF). Bull S.A. Cedoc. November 2003. 67 A2 RJ78 Rev00. Archiviert von das Original (PDF) Am 2015-02-12.
- Bonten, Jo H. M. (2009-03-08) [2007]. "Datenformate in alten 48- und 36-Bit-Computern: Sechs-Bit-Zeichen". Geldrop, Niederlande. Archiviert vom Original am 2016-06-16. Abgerufen 2016-06-16.