Binär decimalkod

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 .

Beskrivning

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:

Tillåtna kombinationer
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:

Förbjudna ytterligare 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

Fördelar och nackdelar

Fördelar

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.

Nackdelar

Därför gäller följande regler när man lägger till och subtraherar tal i formatet 8421-BCD:

  1. När man lägger till BCD-nummer, varje gång en bit överförs till den höga nibblen, är det nödvändigt att lägga till korrigeringsvärdet 0110 till nibblet från vilket överföringen skedde (= 6 10 = 16 10  - 10 10 : skillnaden i antalet kombinationer av nibble och de värden som används).
  2. När man lägger till binära decimala tal, varje gång en olaglig kombination för en nibble (ett tal större än 9) påträffas, är det nödvändigt att lägga till korrigeringsvärdet 0110 till varje ogiltig kombination med överföringen tillåten i de högre nibbles.
  3. Vid subtrahering av BCD-tal, för varje nibble som har fått ett lån från high nibble, måste en korrigering göras genom att subtrahera värdet 0110.

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.

Andra kodningssystem

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 .

Se även