BCD (kódování znaků) - BCD (character encoding)

Interkódové kódy BCD
Klasifikace 6bitové alfanumerické základní latinské kódování
Uspěl EBCDIC

BCD ( binárně kódované desetinné číslo ), nazývané také alfanumerické BCD , alfamerické BCD , BCD Interchange Code nebo BCDIC , je rodina reprezentací číslic, velkých latinských písmen a některých speciálních a kontrolních znaků jako šestibitových znakových kódů .

Na rozdíl od pozdějších kódování, jako je ASCII , nebyly kódy BCD standardizovány. Různí výrobci počítačů, a dokonce i různé produktové řady od stejného výrobce, často měli své vlastní varianty a někdy obsahovali jedinečné znaky. Jiná šestibitová kódování se zcela odlišným mapováním, například některé varianty FIELDATA nebo Transcode , jsou někdy nesprávně označována jako BCD.

Mnoho variant BCD kóduje znaky '0' až '9' jako odpovídající binární hodnoty.

Dějiny

Technicky binárně kódované desetinné číslo popisuje kódování desetinných čísel, kde každá desetinná číslice je reprezentována pevným počtem bitů, obvykle čtyřmi.

Se zavedením karty IBM v roce 1928 vytvořil IBM kód schopný reprezentovat alfanumerické informace, později přijatý jinými výrobci. Tento kód představuje čísla 0-9 jediným úderem a používá více razníků pro velká písmena a speciální znaky. Písmeno má dva razníky (zóna [12,11,0] + číslice [1–9]); většina speciálních znaků má dva nebo tři údery (zóna [12,11,0, nebo žádná] + číslice [2–7] + 8).

Kód BCD je adaptací kódu děrné karty na šestibitový binární kód zakódováním číslicových řádků (devět řádků, plus neděrovaných) do nízkých čtyř bitů a řad zón (tři řádky, plus neděrované) do vysokých. dva bity. Číslice nula (jeden úder v řádku 0) je obvykle zpracována nějakým zvláštním způsobem a číselný kód byl rozšířen na hodnoty 10 až 15 kombinací číslice v rozsahu 2–7 s razníkem v řádku 8. IBM použila termíny binárně kódované desítkové a BCD na variace BCD alfameriky používané ve většině raných počítačů IBM, včetně řad IBM 1620 , IBM 1400 a členů bez desítkové architektury řady IBM 700/7000 .

Mezi dodavatele využívající BCD patřily společnosti Burroughs , Bull , CDC , IBM , General Electric (počítačovou divizi koupila společnost Honeywell v roce 1969), NCR , Siemens a Sperry - UNIVAC .

IBM oznámila 8bitový Extended Binary Coded Decimal Interchange Code (EBCDIC), založený na BCDIC, v roce 1964 se zavedením své řady System/360 .

Speciální znaky

Znak Záznam nebo Záznamová značka (reprezentovaný jako ‡) je znak používaný k označení konce záznamu . Kód BCD pro tento znak je v některých variantách BCD 32 8 . Nejbližší ekvivalent Unicode je U+29E7 THERMODYNAMIC , ale ten se v mnoha písmech nenachází, takže se místo toho často používá U+2021 DOUBLE DAGGER . Funkčně to odpovídá znaku EBCDIC IRS (ASCII RS ), X'1E '.

Znak Groupmark nebo Group mark (reprezentovaný jako IBM 1401 Group Mark. GIF) je znak používaný k označení začátku nebo konce skupiny souvisejících polí. Kód BCD pro tento znak je v některých variantách BCD 77 8 . Skupinový znak byl navržen pro standardizaci Unicode v roce 2015 a byl přiřazen hodnotě U+2BD2 GROUP MARK . Funkčně to odpovídá znaku EBCDIC IGS (ASCII GS ), X'1D '. Nyní je na této pozici v Unicode 10.0, ale podporují ho pouze fonty Symbola a Unifont.

Wordmark , naproti tomu není BCD charakter. Jedná se spíše o příznakový bit používaný k označení konce slova na některých počítačích s proměnnou délkou slova , jako je IBM 1401 .

Variace kódu BCD

Existuje mnoho různých verzí šestbitového kódu BCD. Existují tři hlavní kategorie rozdílu:

  1. Mapování ze zónových úderů na bity vysokého řádu. Všechny kódy nepřekládají žádné zónové údery na bitový vzor 00, ale některé kódují zónové razníky v pořadí 12-11-0, přičemž zachovávají abecední pořadí, zatímco jiné používají pořadí 0-11-12, což má za následek částečně obrácenou abecedu.
  2. Zpracování číslice 0. Přímý překlad z děrné formy by umístil prázdné místo před číslice 1–9 a kódoval 0 někde úplně jinde. Všechny kódy mají speciální zpracování, které buď převede číslici 0 na nulový binární kód (a přesune prázdné místo jinam), nebo mu dá binární kód 001010 (desetinné číslo 10) a použije úder 8+2 jinde.
  3. Přiřazení speciálních znaků. Znaky přiřazené kódům nad rámec základní alfanumerické sady se velmi lišily, a to i v rámci jednoho modelu počítače.

Ve „španělsky mluvících zemích“ znak „Ñ“ v původním systému neexistoval, proto „@“ zvolila většina výrobců: Bull, NCR a Control Data, ale při slučování databází na 7bitové došlo k nejednotnosti ASCII kód, protože v tomto kódovacím systému byl zvolen znak "/" , což vedlo ke dvěma různým kódům pro stejný znak.

Příklady kódů BCD

Následující grafy ukazují číselné hodnoty znaků BCD v hexadecimálním (base-16) zápisu, protože nejjasněji odráží strukturu 4bitových binárních kódovaných desetinných míst plus dva další bity. Například kód pro 'A' v řádku 3x a sloupci x1 je hexadecimální 31 nebo binární '11 0001 '.

48místný kód BCD

První verze BCDIC měly 48 znaků, protože byly založeny na vzorech děrných štítků karet a znakových sadách tiskáren, z nichž ani jeden nepodporoval počet znaků o síle dvou.

48-znakový BCDIC kód IBM
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 # @
1x / S T U PROTI W X Y Z , %
2x - J. K L M N. Ó P Otázka R. $ *
3x & A B C D E F G H .

To bylo založeno na 40místném kódu děrné karty; původních 37 (10 číslic, 26 písmen a prázdné) a tři komerčně důležité znaky přidané kolem roku 1932: pomlčka-minus používaná pro tisk zůstatků kreditu a pomlčky , ampersand používaný také v mnoha jménech a adresách ( Procter & Gamble , Mr. . & Mrs. Smith) a hvězdička použitá k přetisku nepoužitých polí při tisku šeků .

Kód BCD IBM 704

IBM 704 přeuspořádal kód BCDIC, aby interně umožňoval normální abecední řazení, s 0 před 1 a A před Z. Při čtení a zápisu magnetických pásek mohl automaticky překládat mezi tímto interním formulářem a dřívějším BCDIC .

Následující tabulka ukazuje přiřazení kódu pro počítač IBM 704 . Nepřiřazené pozice kódu se zobrazí jako mezery.

Znaková sada IBM 704
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 +0 .
2x - J. K L M N. Ó P Otázka R. -0 $ *
3x prostor / S T U PROTI W X Y Z , %

(+0 a -0 byly jen zřídka použity znaky, které odpovídaly konvenci děrných štítků číslice 0 s přetaženým znaménkem v řádcích 12 nebo 11.)

Následující tabulka ukazuje přiřazení kódů pro tiskárnu typu 716 používanou od počítače IBM 704 až po 7094. Rozhraní 704 odeslalo do této tiskárny virtuální řádky děrných štítků, dvě slova (72 bitů) najednou, takže mapování ze 6bitových znaků BCD bylo provedeno softwarem a nebylo integrováno do tiskárny.

Znaková sada tiskárny IBM 716 G
Zone
punč
Digit punč
1 2 3 4 5 6 7 8 9 8+3 8+4
Žádný * 1 2 3 4 5 6 7 8 9 + -
12 + A B C D E F G H .
11 - J. K L M N. Ó P Otázka R. $ *
0 0 / S T U PROTI W X Y Z , %

Jedná se o repertoár z 45 znaků (nepočítáme-prázdné, který je řešen speciálně tiskárna), jako postavy +, -a *jsou duplikovány.

Znaková sada Fortran

Existovaly určité variace; IBM 704 Fortran měl jinou sadu speciálních znaků (zachoval pouze duplikované znaménko minus).

Znaková sada tiskárny Fortran pro tiskárnu IBM 716
Zone
punč
Digit punč
1 2 3 4 5 6 7 8 9 8+3 8+4
Žádný * 1 2 3 4 5 6 7 8 9 = -
12 + A B C D E F G H . )
11 - J. K L M N. Ó P Otázka R. $ *
0 0 / S T U PROTI W X Y Z , (

Podobný kód byl použit pro nástupce IBM 709 , 7090 a 7094 , ale s některými speciálními znaky znovu přiřazeny:

Znaková sada IBM 7090/7094
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 +0 . )
2x - J. K L M N. Ó P Otázka R. -0 $ *
3x prostor / S T U PROTI W X Y Z ± , (

Kód IBM 1401 BCD

IBM 1401 použil všechny nula kód pro prázdné, a pohyboval číslice nula ke kódu 10. Bylo to definované znakové formy pro všechny možné hodnoty pro účely dokumentace, ale pouze 48 z celkového počtu 63 non-prázdné znaky byly pro tisk, a existovaly značné rozdíly v tom, jak byly v praxi zobrazeny ostatní hodnoty kódu (v tabulce níže). I ostatní znaky se lišily mezi různými dostupnými tiskovými řetězci pro tiskárnu IBM 1403 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 # @ : >
1x ¢ / S T U PROTI W X Y Z , % = ' "
2x - J. K L M N. Ó P Otázka R. ! $ * ) ; Δ
3x & A B C D E F G H ? . ( <

GBCD kód

Níže je tabulka GBCD kódu GE/Honeywell, varianta BCD.

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 prostor A B C D E F G H & . ] ( < \
2x ^ J. K L M N. Ó P Otázka R. - $ * ) ; '
3x + / S T U PROTI W X Y Z _ , % = " !

BCD kód Burroughs B5500

Následující tabulka ukazuje přiřazení kódu pro počítač Burroughs B5500 , někdy označovaný také jako BIC (Burroughs Interchange Code).

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 . [ & ( <
2x × J. K L M N. Ó P Otázka R. $ * - ) ;
3x prostor / S T U PROTI W X Y Z , % = ] "

Kódová stránka 353

Kódová stránka BCDIC-A byla přiřazena jako kódová stránka 353 , známá také jako CP353 . Některé znaky na této kódové stránce nejsou v Unicode. [Přítomnost dvou # znaků, ale žádný znak + se v této tabulce jeví jako nesprávný.]

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 # @ : >
1x / S T U PROTI W X Y Z , % γ \
2x - J. K L M N. Ó P Otázka R. ! # * ] ; Δ
3x & A B C D E F G H ? . [ <

Na 0x1A je značka záznamu, která nebyla navržena samostatně kvůli její podobnosti s dvojitou dýkou. Na 0x3F je značka skupiny.

Kódové stránky PTTC/BCD

PTTC/BCD měl 5 možností. Bylo tam pět kódových stránek. Jsou uvedeny níže. Standardní možnost PTTC/BCD byla přiřazena jako kódová stránka 355 nebo CP355 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T U PROTI W X Y Z , γ
2x - J. K L M N. Ó P Otázka R. < $
3x & A B C D E F G H ) .

Volba PTTC/BCD H byla přiřazena jako kódová stránka 357 nebo CP357 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 =
1x ' / S T U PROTI W X Y Z ,
2x - J. K L M N. Ó P Otázka R. ! $
3x + A B C D E F G H ? .

Možnost korespondence PTTC/BCD byla přiřazena jako kódová stránka 358 nebo CP358 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 '
1x ! / S T U PROTI W X Y Z ,
2x - J. K L M N. Ó P Otázka R. < ;
3x = A B C D E F G H > .

Volba Monocase PTTC/BCD byla přiřazena jako kódová stránka 359 nebo CP359 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T U PROTI W X Y Z ,
2x - J. K L M N. Ó P Otázka R. $
3x & A B C D E F G H .

Možnost Duocase PTTC/BCD byla přiřazena jako kódová stránka 360 nebo CP360 .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x prostor 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T U PROTI W X Y Z ,
2x - J. K L M N. Ó P Otázka R. $
3x & A B C D E F G H .

Viz také

Poznámky

Reference

Další čtení