Cod zecimal binar

Decimală codificată binar , BCD , 8421-BCD este o formă de scriere a numerelor raționale, când fiecare cifră zecimală a unui număr este scrisă ca  codul său binar pe patru biți . Astfel, fiecare tetradă BCD poate lua valori de la 0000 2 (0 10 ) la 1001 2 (9 10 ).

De exemplu, numărul zecimal 311 10 ar fi scris în notație binară ca 1 0011 0111 2 și în BCD ca 0011 0001 0001 BCD .

Descriere

Cu 4 biți , pot fi codificate 16 cifre. Dintre acestea sunt folosite 10. Restul de 6 combinații din codul BCD sunt interzise. Tabel de corespondență pentru codul zecimal codat binar și cifre zecimale:

Combinații permise
Cod zecimal binar Cod zecimal
0 0 0 0 0
0 0 0 unu unu
0 0 unu 0 2
0 0 unu unu 3
0 unu 0 0 patru
0 unu 0 unu 5
0 unu unu 0 6
0 unu unu unu 7
unu 0 0 0 opt
unu 0 0 unu 9

BCD este folosit și în telefonie. În acest caz, pe lângă cifrele zecimale, sunt codificate caracterele „*”, „#” și altele. Pentru a scrie aceste caractere în cod binar-zecimal, se folosesc combinații interzise:

Combinații suplimentare interzise
Cod zecimal binar Cod zecimal
unu 0 unu 0 * (asterisc)
unu 0 unu unu # (semnul lire sterline)
unu unu 0 0 + (plus)
unu unu 0 unu - (minus)
unu unu unu 0 , (punct zecimal)
unu unu unu unu Simbol de anulare

Avantaje și dezavantaje

Beneficii

Din aceste motive, formatul BCD este folosit în calculatoare  - un calculator în cele mai simple operații aritmetice ar trebui să afișeze exact același rezultat pe care îl calculează o persoană pe hârtie.

Dezavantaje

Prin urmare, la adăugarea și scăderea numerelor în formatul 8421-BCD, se aplică următoarele reguli:

  1. La adăugarea numerelor BCD, de fiecare dată când un bit este transferat la nibble-ul înalt, este necesar să adăugați valoarea de corecție 0110 la nibble-ul de la care a avut loc transferul (= 6 10 = 16 10  - 10 10 : diferența dintre numărul de combinații de nibble și valorile utilizate).
  2. Când se adaugă numere binare-zecimale, de fiecare dată când se întâlnește o combinație ilegală pentru un nibble (un număr mai mare de 9), este necesar să se adauge valoarea de corecție 0110 la fiecare combinație nevalidă cu transferul permis în nibble-urile superioare.
  3. La scăderea numerelor BCD, pentru fiecare nibble care a primit un împrumut din nibble mare, trebuie făcută o corecție prin scăderea valorii 0110.

Un exemplu de operație de adăugare binară-zecimală:

Obligatoriu: găsiți numărul A = D + C, unde D = 3927, C = 4856

Rezolvare: Să reprezentăm numerele D și C în BCD:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD

Însumăm numerele D și C conform regulilor aritmeticii binare:

* ** 0011 1001 0010 0111 + 0100 1000 0101 0110 ___________________ = 1000 0001 0111 1101 - Sumă binară + 0110 0110 - Corectare ___________________ 1000 0111 1000 0011

'*' — tetradă din care s-a făcut un transfer la tetradă senior

'**' — tetradă cu combinație interzisă de biți

Adăugăm un șase la tetrada marcată cu simbolul *, deoarece, conform regulilor aritmeticii binare, transferul a luat 16 cu ea și, conform regulilor aritmeticii zecimale, ar fi trebuit să ducă 10. bit 1101 (corespunzător până la zecimala 13) este ilegală.

Alte sisteme de codare

În sistemul de codare 2 din 5 , o cifră zecimală este codificată cu 5 biți, dintre care 2 biți sunt setați la 1 și 3 biți la 0, ceea ce oferă exact 10 combinații. Un astfel de sistem oferă o detectare mai bună a erorilor, deoarece schimbarea unui bit va da întotdeauna o combinație nevalidă; de asemenea, modificări unidirecționale (modificări multiple 0→1 sau 1→0) sunt întotdeauna detectate. Codificarea „2 din 5” a fost utilizată în computerele din seriile IBM 7070 , IBM 7072 și IBM 7074 ; folosit și în unele țări pentru a marca corespondența cu un cod de bare .

Numerele zecimale compactate permit plasarea a 3 cifre zecimale în 10 biți (2 10 = 1024 combinații, ceea ce este suficient pentru 3 cifre zecimale), iar codificarea este concepută astfel încât conversia între un cod de 10 biți și trei separate cifrele zecimale se pot face folosind un circuit logic simplu și rapid. Această codificare este utilizată în numere zecimale cu virgulă mobilă, așa cum este descris în standardul IEEE 754-2008 .

Vezi și