Zecimal codat binar
Acest articol sau secțiune despre electronică și tehnologia informației nu menționează sursele necesare sau cei prezenți sunt insuficienți . |
Codificarea codului binar zecimal (BCD) este o modalitate utilizată în mod obișnuit în calcul și electronică pentru a reprezenta cifrele zecimale în cod binar , care utilizează parțial convertibilitatea de la baza 2 la baza 16 .
În acest format, fiecare cifră a unui număr zecimal este reprezentată ca pentru un număr de bază 16 printr-un cod binar de patru biți , a cărui valoare este între 0 (0000) și 9 (1001). Restul de șase cifre ale bazei 16 pot fi utilizate pentru a reprezenta simboluri. De exemplu, numărul 127 este reprezentat în BCD ca 0001, 0010, 0111.
Deși BCD implică o risipă considerabilă de biți (aproximativ 1/6 de memorie neutilizată în BCD-uri împachetate), în unele cazuri este de preferat deoarece are o corespondență directă cu codul ASCII . De fapt, este suficient să înlocuiți primii patru biți neutilizați cu 0011 pentru a obține ASCII corespunzător.
În sumă, dacă rezultatul depășește 9 (1001), atunci se adaugă 6 (0110).
Deoarece computerele stochează date în octeți de biți, cu această codificare este posibil să stocați o cifră pe octet și să completați restul de patru biți cu zerouri sau unii (ca în codul EBCDIC ) sau să puneți două cifre pe octet, un mod numit ambalat BCD .
Numerele din notația ambalată BCD se termină de obicei cu un cod de semn, de obicei 1100 pentru + și 1101 pentru minus. Numărul 127 este reprezentat de 11110001, 11110010, 11110111 în EBCDIC și 00010010, 01111100 în BCD ambalat.
Codul BCD este utilizat pe scară largă în electronică, în special în circuitele digitale fără microprocesor , deoarece facilitează vizualizarea cifrelor lungi pe afișajele cu șapte segmente . De fapt, fiecare afișaj fizic corespunde exact unei cifre. Există circuite integrate speciale care efectuează conversia de la BCD în secvența corespunzătoare de aprindere a segmentelor. Chiar și efectuarea de calcule aritmetice simple este mai ușor de realizat pe cifre BCD pentru circuite logice combinaționale.
BIOS-urile computerului personal stochează data și ora în BCD; acest lucru apare probabil din motive istorice, ținând seama de faptul că, în unele sisteme recente, anul este reprezentat diferit pentru a remedia bugul Millennium .
IBM și BCD
IBM folosește termenul zecimal codat binar sau BCD pentru un cod alfanumeric propriu cu șase biți (baza 64: 2 ^ 6), care reprezintă cifre, litere alfabetice majuscule și alte caractere speciale.
În primele computere IBM (IBM 1620, seria IBM 1400 și unități non-zecimale din seria IBM 700/7000) au fost adoptate mai multe variante ale BCD. Odată cu introducerea System / 360 , IBM a înlocuit BCD cu codul EBCDIC pe opt biți.
Pozițiile de biți din codul IBM BCD sunt etichetate în mod obișnuit B, A, 8, 4, 2, 1 . A și B sunt zero atunci când este codată o cifră numerică.
În BCD 1062, caracterele alfabetice au fost codificate folosind biți pari în perechi de biți și folosind biți impari pentru cifre. Hardware special convertit între această codificare internă și codul BCD pe șase biți utilizat extern.
Rezumând
Tabelul următor rezumă codarea cifrelor de la zero la nouă din unele sisteme BCD.
Pentru claritate, BCD-ul standard descris la începutul articolului se numește Zecimală codificată binară simplă ( SBCD ) sau BCD 8421 , unde 8421 indică greutatea biților.
Figura | SBCD 8421 | Exces-3 | BCD 2421 | BCD 84-2-1 | IBM 1401 8421 |
---|---|---|---|---|---|
0 | 0000 | 0011 | 0000 | 0000 | 1010 |
1 | 0001 | 0100 | 0001 | 0111 | 0001 |
2 | 0010 | 0101 | 0010 | 0110 | 0010 |
3 | 0011 | 0110 | 0011 | 0101 | 0011 |
4 | 0100 | 0111 | 0100 | 0100 | 0100 |
5 | 0101 | 1000 | 1011 | 1011 | 0101 |
6 | 0110 | 1001 | 1100 | 1010 | 0110 |
7 | 0111 | 1010 | 1101 | 1001 | 0111 |
8 | 1000 | 1011 | 1110 | 1000 | 1000 |
9 | 1001 | 1100 | 1111 | 1111 | 1001 |
Dreapta
În 1972 , Curtea Supremă a Statelor Unite a anulat o decizie a unei instanțe minore care autoriza un brevet pentru convertirea BCD în binar (Gottschalk împotriva Benson). [1] Este un caz interesant în dezbaterea complexă privind acordarea sau nu a brevetelor software .