Binärkodad decimal , BCD , 8421-BCD är en form av att skriva rationella tal, när varje decimalsiffra i ett tal skrivs som dess fyrabitars binära kod . Således kan varje BCD -tetrad ta värden från 0000 2 (0 10 ) till 1001 2 (9 10 ).
Till exempel skulle decimaltalet 311 10 skrivas i binär notation som 1 0011 0111 2 och i BCD som 0011 0001 0001 BCD .
Med 4 bitar kan 16 siffror kodas. Av dessa används 10. De återstående 6 kombinationerna i BCD-koden är förbjudna. Korrespondenstabell för binärkodad decimalkod och decimalsiffror:
Binär decimalkod | Decimalkod | |||
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | ett | ett |
0 | 0 | ett | 0 | 2 |
0 | 0 | ett | ett | 3 |
0 | ett | 0 | 0 | fyra |
0 | ett | 0 | ett | 5 |
0 | ett | ett | 0 | 6 |
0 | ett | ett | ett | 7 |
ett | 0 | 0 | 0 | åtta |
ett | 0 | 0 | ett | 9 |
BCD används även inom telefoni. I det här fallet, förutom decimalsiffror, kodas tecknen '*', '#' och några andra. För att skriva dessa tecken i binär-decimalkod används förbjudna kombinationer:
Binär decimalkod | Decimalkod | |||
---|---|---|---|---|
ett | 0 | ett | 0 | * (asterisk) |
ett | 0 | ett | ett | # (pundtecken) |
ett | ett | 0 | 0 | + (plus) |
ett | ett | 0 | ett | - (minus) |
ett | ett | ett | 0 | , (decimalpunkt) |
ett | ett | ett | ett | Avbryt symbol |
Av dessa skäl används BCD-format i miniräknare - en miniräknare i de enklaste aritmetiska operationerna ska visa exakt samma resultat som en person räknar på papper.
Därför gäller följande regler när man lägger till och subtraherar tal i formatet 8421-BCD:
Ett exempel på en binär-decimal additionsoperation:
Obligatoriskt: Hitta talet A = D + C, där D = 3927, C = 4856
Lösning: Låt oss representera talen D och C i BCD:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD
Vi summerar talen D och C enligt reglerna för binär aritmetik:
*** 0011 1001 0010 0111 + 0100 1000 0101 0110 __________________ = 1000 0001 0111 1101 - Binär summa + 0110 0110 - Rättelse __________________ 1000 0111 1000 0011'*' — tetrad från vilken det skedde en överföring till senior tetrad
'**' — tetrad med förbjuden kombination av bitar
Vi lägger till en sexa till tetraden markerad med *-symbolen, eftersom överföringen enligt reglerna för binär aritmetik tog 16 med sig, och enligt reglerna för decimalaritmetik borde den ha tagit bort 10. bit 1101 (motsvarande till decimal 13) är olagligt.
I 2 av 5-kodningssystemet kodas en decimalsiffra med 5 bitar, varav 2 bitar är satta till 1 och 3 bitar till 0, vilket ger exakt 10 kombinationer. Ett sådant system ger bättre feldetektering, eftersom ändring av en bit alltid ger en ogiltig kombination; även enkelriktade förändringar (flera 0→1 eller 1→0 ändringar) detekteras alltid. "2 av 5"-kodning användes i IBM 7070- , IBM 7072- och IBM 7074- seriens datorer ; används också i vissa länder för att markera post med en streckkod .
Komprimerade decimaltal tillåter att 3 decimalsiffror placeras i 10 bitar (2 10 = 1024 kombinationer, vilket räcker för 3 decimalsiffror), och kodningen är utformad så att konverteringen mellan en 10-bitars kod och tre separata decimalsiffror kan göras med en enkel och snabb logikkrets. Denna kodning används i decimaltal med flyttal enligt beskrivningen i IEEE 754-2008-standarden .