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 .
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é kombinaceBiná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ší kombinaceBiná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 |
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.
Proto při sčítání a odečítání čísel ve formátu 8421-BCD platí následující pravidla:
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é.
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 .