Binární desítkový kód

Binárně kódované dekadické číslo , BCD , 8421-BCD je  forma zápisu racionálních čísel, kdy je každá desetinná číslice čísla zapsána jako jeho čtyřbitový binární kód . Každá tetrada BCD tedy může nabývat hodnot od 0000 2 (0 10 ) do 1001 2 (9 10 ).

Například desetinné číslo 311 10 by bylo zapsáno v binárním zápisu jako 1 0011 0111 2 a v BCD jako 0011 0001 0001 BCD .

Popis

Se 4 bity lze zakódovat 16 číslic. Z toho je použito 10. Zbývajících 6 kombinací v BCD kódu je zakázáno. Korespondenční tabulka pro binárně kódovaný dekadický kód a dekadické číslice:

Povolené kombinace
Binární desítkový kód Desetinný kód
0 0 0 0 0
0 0 0 jeden jeden
0 0 jeden 0 2
0 0 jeden jeden 3
0 jeden 0 0 čtyři
0 jeden 0 jeden 5
0 jeden jeden 0 6
0 jeden jeden jeden 7
jeden 0 0 0 osm
jeden 0 0 jeden 9

BCD se také používá v telefonii. V tomto případě jsou kromě desetinných číslic zakódovány znaky '*', '#' a některé další. K zápisu těchto znaků v binárním desítkovém kódu se používají zakázané kombinace:

Zakázané další kombinace
Binární desítkový kód Desetinný kód
jeden 0 jeden 0 * (hvězdička)
jeden 0 jeden jeden # (znak libry)
jeden jeden 0 0 + (plus)
jeden jeden 0 jeden - (mínus)
jeden jeden jeden 0 , (desetinná čárka)
jeden jeden jeden jeden Zrušit symbol

Výhody a nevýhody

Výhody

Z těchto důvodů se v kalkulačkách používá formát BCD  - kalkulačka v nejjednodušších aritmetických operacích by měla zobrazovat přesně stejný výsledek, jaký člověk počítá na papíře.

Nevýhody

Proto při sčítání a odečítání čísel ve formátu 8421-BCD platí následující pravidla:

  1. Při sčítání BCD čísel je při každém přenosu bitu na vysoký nibble nutné přičíst korekční hodnotu 0110 k nibble, ze kterého došlo k přenosu (= 6 10 = 16 10  - 10 10 : rozdíl v počtu kombinace nibble a použitých hodnot).
  2. Při přidávání binárně-desetinných čísel je pokaždé, když se narazí na nepovolenou kombinaci pro nibble (číslo větší než 9), nutné ke každé neplatné kombinaci přidat opravnou hodnotu 0110 s převodem povoleným ve vyšších nibblech.
  3. Při odečítání čísel BCD je třeba pro každý nibble, který obdržel půjčku z vysokého nibble, provést opravu odečtením hodnoty 0110.

Příklad operace binárně-desítkového sčítání:

Požadováno: Najděte číslo A = D + C, kde D = 3927, C = 4856

Řešení: Představme si čísla D a C v BCD:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD

Čísla D a C sečteme podle pravidel binární aritmetiky:

*** 0011 1001 0010 0111 + 0100 1000 0101 0110 ____________________ = 1000 0001 0111 1101 - Binární součet + 0110 0110 - Oprava ____________________ 1000 0111 1000 0011

'*' — tetráda, ze které došlo k převodu na starší tetrádu

'**' — tetráda se zakázanou kombinací bitů

K tetrádě označené symbolem * přidáme šestku, protože podle pravidel binární aritmetiky s sebou převod vzal 16 a podle pravidel desítkové aritmetiky měl odnést 10. bit 1101 (odpovídající na desetinné číslo 13) je nezákonné.

Jiné kódovací systémy

V systému kódování 2 z 5 je jedna desetinná číslice zakódována 5 bity, z nichž 2 bity jsou nastaveny na 1 a 3 bity na 0, což dává přesně 10 kombinací. Takový systém poskytuje lepší detekci chyb, protože změna jednoho bitu vždy poskytne neplatnou kombinaci; vždy jsou detekovány také jednosměrné změny (násobné změny 0→1 nebo 1→0). Kódování "2 z 5" bylo použito v počítačích řady IBM 7070 , IBM 7072 a IBM 7074 ; v některých zemích se také používá k označení pošty čárovým kódem .

Zhutněná dekadická čísla umožňují umístit 3 dekadické číslice do 10 bitů (2 10 = 1024 kombinací, což stačí na 3 dekadické číslice) a kódování je navrženo tak, aby převod mezi 10bitovým kódem a třemi samostatnými desítkové číslice lze provádět pomocí jednoduchého a rychlého logického obvodu. Toto kódování se používá v desetinných číslech s pohyblivou řádovou čárkou, jak je popsáno ve standardu IEEE 754-2008 .

Viz také