Binäärikoodattu desimaaliluku , BCD , 8421-BCD on rationaalisten lukujen kirjoittamisen muoto, jossa luvun jokainen desimaaliluku kirjoitetaan sen nelibittiseksi binäärikoodiksi . Siten jokainen BCD - tetradi voi saada arvot välillä 0000 2 (0 10 ) - 1 001 2 (9 10 ).
Esimerkiksi desimaaliluku 311 10 kirjoitettaisiin binäärimuodossa 1 0011 0111 2 ja BCD:ssä 0011 0001 0001 BCD .
4 bitillä voidaan koodata 16 numeroa. Näistä käytetään 10. Loput 6 yhdistelmää BCD-koodissa ovat kiellettyjä. Binaarikoodatun desimaalikoodin ja desimaalinumeroiden vastaavuustaulukko:
Binääri desimaalikoodi | Desimaalikoodi | |||
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | yksi | yksi |
0 | 0 | yksi | 0 | 2 |
0 | 0 | yksi | yksi | 3 |
0 | yksi | 0 | 0 | neljä |
0 | yksi | 0 | yksi | 5 |
0 | yksi | yksi | 0 | 6 |
0 | yksi | yksi | yksi | 7 |
yksi | 0 | 0 | 0 | kahdeksan |
yksi | 0 | 0 | yksi | 9 |
BCD:tä käytetään myös puhelimessa. Tässä tapauksessa desimaalilukujen lisäksi merkit '*', '#' ja jotkut muut ovat koodattuja. Näiden merkkien kirjoittamiseen binääri-desimaalikoodilla käytetään kiellettyjä yhdistelmiä:
Binääri desimaalikoodi | Desimaalikoodi | |||
---|---|---|---|---|
yksi | 0 | yksi | 0 | * (tähti) |
yksi | 0 | yksi | yksi | # (punnan merkki) |
yksi | yksi | 0 | 0 | + (plus) |
yksi | yksi | 0 | yksi | - (miinus) |
yksi | yksi | yksi | 0 | , (desimaalipiste) |
yksi | yksi | yksi | yksi | Peruuta symboli |
Näistä syistä laskimissa käytetään BCD-muotoa - yksinkertaisimpien aritmeettisten operaatioiden laskimen pitäisi näyttää täsmälleen sama tulos kuin henkilö laskee paperille.
Siksi seuraavat säännöt ovat voimassa, kun lisäät ja vähennät numeroita 8421-BCD-muodossa:
Esimerkki binääri-desimaalilaskuoperaatiosta:
Pakollinen: Etsi luku A = D + C, jossa D = 3927, C = 4856
Ratkaisu: Esitetään lukuja D ja C BCD:ssä:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD
Summaamme luvut D ja C binääriaritmeettisten sääntöjen mukaisesti:
*** 0011 1001 0010 0111 + 0100 1000 0101 0110 _______________________ = 1000 0001 0111 1101 - Binäärisumma + 0110 0110 - Korjaus _______________________ 1000 0111 1000 0011'*' — tetradi, josta tapahtui siirto vanhempi tetradi
'**' — tetradi, jossa on kielletty bittiyhdistelmä
Lisäämme *-symbolilla merkittyyn tetradiin kuusi, koska binääriaritmeettisten sääntöjen mukaan siirto vei mukanaan 16, ja desimaaliaritmeettisten sääntöjen mukaan sen olisi pitänyt viedä pois 10. bitti 1101 (vastaava desimaalin tarkkuudella 13) on laitonta.
2/5-koodausjärjestelmässä [ yksi desimaaliluku on koodattu 5 bitillä, joista 2 bittiä on asetettu 1:ksi ja 3 bittiä 0:ksi, mikä antaa täsmälleen 10 yhdistelmää. Tällainen järjestelmä tarjoaa paremman virheentunnistuksen, koska yhden bitin vaihtaminen antaa aina virheellisen yhdistelmän; myös yksisuuntaiset muutokset (useita 0→1 tai 1→0 muutoksia) havaitaan aina. "2/5" -koodausta käytettiin IBM 7070 - , IBM 7072 - ja IBM 7074 -sarjan tietokoneissa ; käytetään myös joissakin maissa postin merkitsemiseen viivakoodilla .
Tiivistetyt desimaaliluvut mahdollistavat 3 desimaalinumeron sijoittamisen 10 bittiin (2 10 = 1024 yhdistelmää, mikä riittää 3 desimaalinumeroon), ja koodaus on suunniteltu siten, että muunnos 10-bittisen koodin ja kolmen erillisen koodin välillä desimaalilukuja voidaan tehdä käyttämällä yksinkertaista ja nopeaa logiikkapiiriä. Tätä koodausta käytetään desimaaliluukun lukuina IEEE 754-2008 -standardin mukaisesti .