Bináris decimális kód

A binárisan kódolt decimális , BCD , 8421-BCD a racionális számok írásának egyik  formája, amikor egy szám minden decimális számjegye négybites bináris kódként van írva . Így minden BCD tetrad értéke 0000 2 (0 10 ) és 1001 2 (9 10 ) között lehet.

Például a 311 10 decimális számot bináris jelöléssel 1 0011 0111 2 -ként írjuk, BCD-ben pedig 0011 0001 0001 BCD -ként .

Leírás

4 bittel 16 számjegy kódolható. Ebből 10-et használnak. A fennmaradó 6 kombináció a BCD kódban tiltott. Megfelelőségi táblázat binárisan kódolt decimális kódhoz és decimális számjegyekhez:

Engedélyezett kombinációk
Bináris decimális kód Tizedes kód
0 0 0 0 0
0 0 0 egy egy
0 0 egy 0 2
0 0 egy egy 3
0 egy 0 0 négy
0 egy 0 egy 5
0 egy egy 0 6
0 egy egy egy 7
egy 0 0 0 nyolc
egy 0 0 egy 9

A BCD-t a telefonálásban is használják. Ebben az esetben a tizedesjegyeken kívül a „*”, „#” és néhány más karakter is kódolva van. A karakterek bináris-decimális kódban történő írásához tiltott kombinációkat kell használni:

Tiltott további kombinációk
Bináris decimális kód Tizedes kód
egy 0 egy 0 * (csillag)
egy 0 egy egy # (font jel)
egy egy 0 0 + (plusz)
egy egy 0 egy - (mínusz)
egy egy egy 0 , (tizedesvessző)
egy egy egy egy Mégse szimbólum

Előnyök és hátrányok

Előnyök

Ezen okok miatt a BCD formátumot használják a számológépekben  - a legegyszerűbb aritmetikai műveletek számológépének pontosan ugyanazt az eredményt kell megjelenítenie, mint amit egy személy papíron számít.

Hátrányok

Ezért a 8421-BCD formátumú számok összeadásakor és kivonásakor a következő szabályok érvényesek:

  1. BCD számok összeadásakor minden alkalommal, amikor egy bitet adunk át a magas nibble-hez, hozzá kell adni a 0110 korrekciós értéket ahhoz a bithez, amelyből az átvitel történt (= 6 10 = 16 10  - 10 10 : a szám különbsége nibble és a használt értékek kombinációi).
  2. A bináris-tizedes számok hozzáadásakor minden alkalommal, amikor egy nibble illegális kombinációja (9-nél nagyobb szám) találkozik, minden érvénytelen kombinációhoz hozzá kell adni a 0110 korrekciós értéket a magasabb nibble-ekben megengedett átvitellel.
  3. A BCD számok kivonásakor minden olyan nibble-nél, amely a magas nibble-ből kölcsönt kapott, korrekciót kell végezni a 0110 érték kivonásával.

Példa egy bináris decimális összeadási műveletre:

Kötelező: Keresse meg az A = D + C számot, ahol D = 3927, C = 4856

Megoldás: ábrázoljuk a D és C számokat a BCD-ben:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD

A D és C számokat a bináris aritmetika szabályai szerint összegezzük:

*** 0011 1001 0010 0111 + 0100 1000 0101 0110 _______________________ = 1000 0001 0111 1101 - Bináris összeg + 0110 0110 - Javítás _______________________ 1000 0111 1000 0011

'*' – tetrad, amelyből átvitel történt az idősebb tetradba

'**' – tetrad tiltott bitkombinációval

A * szimbólummal jelölt tetradhoz egy hatost adunk, mivel a bináris aritmetika szabályai szerint az átvitel 16-ot vitt magával, és a decimális aritmetika szerint 10. 1101 bitet kellett volna elvinni (megfelelő tizedesjegyig 13) illegális.

Egyéb kódrendszerek

A 2/5 kódolási rendszerben egy decimális számjegy 5 bittel van kódolva, ebből 2 bit 1-re, 3 bit pedig 0-ra van állítva, ami pontosan 10 kombinációt ad. Egy ilyen rendszer jobb hibaérzékelést tesz lehetővé, mivel egy bit megváltoztatása mindig érvénytelen kombinációt ad; az egyirányú változtatásokat is (több 0→1 vagy 1→0 változás) is mindig észleli. Az IBM 7070 , IBM 7072 és IBM 7074 sorozatú számítógépeken "2/5" kódolást használtak ; egyes országokban a levelek vonalkóddal való megjelölésére is használják .

A tömörített decimális számok lehetővé teszik 3 decimális számjegy elhelyezését 10 bitben (2 10 = 1024 kombináció, ami 3 decimális számjegyhez elegendő), és a kódolást úgy tervezték meg, hogy a 10 bites kód és három különálló kód közötti konverziót A decimális számjegyek egyszerű és gyors logikai áramkörrel is elkészíthetők. Ezt a kódolást decimális lebegőpontos számokban használják az IEEE 754-2008 szabványban leírtak szerint .

Lásd még