Zecimal Codificat Binar (BCD) este un sistem de codificare binară în care fiecare cifră zecimală este reprezentată de un număr fix de biți binari, de obicei patru. În loc să convertească întregul număr zecimal într-un număr binar, BCD reprezintă fiecare cifră zecimală separat ca echivalentul său binar.
- BCD alimentează sisteme digitale precum ceasurile și calculatoarele, făcând posibile afișajele zecimale.
- Este alegerea preferată pentru sistemele cu interacțiune umană, cum ar fi afișajele digitale și instrumentele de introducere a datelor.
- BCD facilitează aritmetica tratând fiecare cifră zecimală separat.
- Sistemele înglobate se bazează pe BCD pentru operații zecimale rapide și eficiente.
Funcționarea Zecimalului Codificat Binar
În BCD, fiecare cifră zecimală (0-9) este convertită în echivalentul său binar de 4 biți. De exemplu:
- Cifra zecimală 0 este reprezentată ca
0000în BCD. - Cifra zecimală 1 este reprezentată ca
0001în BCD. - Cifra zecimală 2 este reprezentată ca
0010în BCD și așa mai departe.
De exemplu, numărul zecimal 57 ar fi reprezentat în BCD ca două numere binare separate de 4 biți:
- Cifra zecimală 5 devine
0101 - Cifra zecimală 7 devine
0111
Deci, 57 în BCD este reprezentat ca 0101 0111.
Tabelul de Adevăr pentru Zecimal Codificat Binar
| Număr Zecimal | BCD |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
Tehnici de Reprezentare BCD
1. BCD Împachetat (Packed BCD)
BCD Împachetat este un tip de Zecimal Codificat Binar unde două cifre zecimale sunt stocate într-un singur octet (8 biți). În BCD Împachetat, fiecare nibble de 4 biți al unui octet reprezintă o cifră zecimală. BCD Împachetat economisește spațiu de memorie comparativ cu alte metode, deoarece folosește un octet pentru a stoca două cifre, făcându-l eficient pentru stocare și procesare în sistemele digitale.
Exemplu: Considerăm numărul zecimal 93. În BCD Împachetat, este reprezentat ca 10010011:
- Primul nibble (1001) reprezintă 9.
- Al doilea nibble (0011) reprezintă 3.
2. BCD Neîmpachetat (Unpacked BCD)
BCD Neîmpachetat stochează fiecare cifră zecimală într-un octet separat. Fiecare octet conține o cifră zecimală, nibble-ul de 4 biți reprezentând cifra zecimală, iar ceilalți 4 biți sunt neutilizați sau setați la 0. BCD Neîmpachetat folosește mai multă memorie comparativ cu BCD Împachetat, deoarece fiecare cifră necesită un octet întreg. Cu toate acestea, este mai simplu de lucrat în anumite sisteme unde fiecare cifră zecimală trebuie accesată separat.
Exemplu: Pentru numărul zecimal 93, în BCD Neîmpachetat:
- Primul octet este 00001001 (reprezentând 9).
- Al doilea octet este 00000011 (reprezentând 3).
Operații Comune pe Numere BCD
Operațiile comune pe numere BCD implică operații aritmetice de bază precum adunarea, scăderea, înmulțirea și împărțirea, cu reguli specifice pentru manipularea numerelor BCD.
1. Adunarea BCD
Pentru a aduna două numere BCD, se calculează suma fiecărei cifre corespunzătoare. Dacă rezultatul depășește 9 (1001 în binar), se adaugă un factor de corecție de 6 (0110 în binar) pentru a ajusta rezultatul.
Exemplu: Adunarea numerelor zecimale 45 și 37 în BCD
Conversie în BCD:
- 45 → 0100 0101
- 37 → 0011 0111
0100 0101 (45)
+ 0011 0111 (37)
———
0111 1100 (7 12)
Acesta este un rezultat BCD invalid, deoarece 12 (1100) este mai mare decât 9 (1001), iar suma ar trebui să fie egală cu 82. Pentru ajustare, adăugăm 6 (0110) la rezultat:
0111 1100 (Rezultat invalid)
+ 0000 0110 (Adaugă factor de corecție)
————
1000 0010 (82)
Rezultat BCD final: 1000 0010, care reprezintă valoarea zecimală 82 în BCD.
2. Scăderea BCD
Pentru a scădea numere BCD, similar adunării, se fac ajustări de împrumut atunci când cifra scăzută este mai mare decât cifra descăzutului. Un factor de corecție de 6 se adaugă atunci când este necesar.
Exemplu: Scăderea numărului zecimal 23 din 47 în BCD
Conversie în BCD:
- 47 → 0100 0111
- 23 → 0010 0011
0100 0111 (47)
– 0010 0011 (23)
————-
0010 0100 (24) -> Rezultat BCD valid
Rezultat BCD final: 0010 0100, care reprezintă valoarea zecimală 24.
3. Înmulțirea BCD
Înmulțirea numerelor BCD necesită conversia cifrelor BCD în echivalentele lor binare, efectuarea înmulțirii și apoi conversia rezultatului înapoi în BCD.
Exemplu: Înmulțirea numerelor zecimale 5 cu 3 în BCD
Conversie în BCD:
- 5 → 0101
- 3 → 0011
- 5 x 3 = 15 → 0000 1111
- Conversia rezultatului binar în BCD: 15 în binar → 0001 0101 în BCD
0101 (5 în binar)
x 0011 (3 în binar)
———
0000 1111 (15 în binar)1 → 0001
5 → 0101
15 în formă BCD: 0001 0101
Rezultat BCD final: 0001 0101, care reprezintă valoarea zecimală 15.
4. Împărțirea BCD
Împărțirea urmează aceleași principii ca și înmulțirea. Numerele BCD sunt mai întâi convertite în binar, împărțite, iar apoi câtul este convertit înapoi în BCD.
Exemplu: Împărțirea numărului zecimal 18 la 3 în BCD
Conversie în BCD:
- 18 → 0001 1000
- 3 → 0011
- 18 ÷ 3 = 6 → 0000 0110
0001 1000 (18 în binar)
÷ 0011 (3 în binar)
————
0000 0110 (6 în binar)
Conversia rezultatului binar în BCD: 6 în binar → 0110 în BCD
Rezultat BCD final: 0110, care reprezintă valoarea zecimală 6.
Limitările BCD
1. Utilizare Ineficientă a Memoriei: BCD folosește mai multă memorie decât reprezentarea binară pură. Fiecare cifră zecimală este reprezentată de 4 biți, ceea ce duce la un consum mai mare de memorie comparativ cu binarul.
2. Operații Aritmetice Complexe: Efectuarea operațiilor aritmetice precum adunarea și înmulțirea este mai complexă în BCD. Sunt necesari factori de corecție suplimentari atunci când rezultatul depășește 9, ceea ce face procesul mai lent.
3. Viteză de Procesare Mai Mică: Datorită necesității pașilor suplimentari de corecție și conversie, operațiile BCD durează mai mult decât operațiile binare, afectând viteza de procesare.
4. Interval Limitat: BCD poate reprezenta doar cifre zecimale (0-9). Nu poate gestiona eficient valorile fracționare fără complexitate suplimentară, limitându-i versatilitatea în anumite aplicații.
5. Costuri Hardware Suplimentare: Este necesar hardware specializat pentru a gestiona operațiile BCD, ceea ce adaugă la costul și complexitatea generală a sistemelor digitale.
Aplicațiile BCD
1. Afișaje Digitale: BCD este utilizat în dispozitive precum ceasurile digitale și calculatoarele pentru a afișa numere zecimale ca valori binare, facilitând afișarea numerelor pe ecrane.
2. Sisteme Înglobate: În sistemele înglobate, BCD este ideal pentru procesarea sau afișarea valorilor zecimale, cum ar fi în aplicațiile financiare, contoare și instrumente digitale.
3. Conversia Datelor: Când numerele zecimale trebuie convertite în binar sau invers, BCD simplifică procesul, ceea ce este util în scanerele de coduri de bare și alte dispozitive de intrare.
4. Operații Aritmetice: BCD este crucial în sistemele care efectuează aritmetică bazată pe zecimal, deoarece permite o manipulare mai ușoară și mai precisă a cifrelor zecimale în adunare, scădere și înmulțire.
5. Sisteme de Control: BCD joacă un rol cheie în sistemele de control unde intrarea și ieșirea zecimală sunt necesare pentru luarea deciziilor precise și procesarea datelor.
- Magie pe Biți
- Matematică
- DSA
- numere
- conversie baze





