laborator 2 reprezentarea datelor operaȚii …cpop/calculatoare_numerice_cn i/cn i_labs... ·...

34
LABORATOR 2 – REPREZENTAREA D ATELOR.OPERAȚII ARITMETICE ZCB (ZECIMAL CODIFICAT BINAR) 1. Prezentarea teoretică În cadrul acestui laborator se vor prezenta modalităţile de reprezentare a numerelor în calculatoarele numerice, precum şi realizarea operaţiilor de adunare şi scădere a numerelor ZCB. În calculatoarele numerice, informaţia memorată în format binar se regăseşte în memorie sau în registrele procesorului. Registrele conţin date sau informaţii de control. Informaţia de control este formată dintrun grup de biţi utilizat în vederea specificării secvenţei semnalelor de comandă necesare manipulării datelor în registre. Datele sunt numere şi alte informaţii codificate binar, care sunt prelucrate în vederea obţinerii unui rezultat numeric. Toate tipurile de date, cu excepţia numerelor binare, sunt reprezentate în registrele calculatorului în formă binară, deoarece acestea sunt alcătuite din bistabile, care pot memora informaţie 0 sau l . Reprezentarea numerelor Un sistem de numeraţ ie, care utilizează baza r este un sistem, care foloseşte simboluri distincte pentru cifrele r. Fiecărei cifre îi este asignată un simbol unic. Şirurile prin care se reprezintă numerele sunt compuse din simboluri. Pentru a determina cantitatea reprezentată de un număr este necesar să se înmulţească fiecare cifră cu un întreg putere a lui r şi apoi să se formeze suma tuturor cifrelor ponderate. Sistemul de numeraţie zecimal este alcătuit din zece simboluri: 0, 1, 2, 3, 4, 5, 6, 7, 8 şi 9. Şirul de cifre 126.3 este interpretat ca: l × 10 2 +2 × 10 1 +6 × 10° + 3 × 10 1 . Sistemul de numeraţie binar utilizează baza 2 rezultând astfel numai două simboluri 0 şi l, utilizate în cadrul acestui sistem de numerație. Şirul de biţi 101111 este interpretat ca: l × 2 5 +0 × 2 4 +l × 2 3 + l × 2 2 +l × 2 1 +l × 2 0 . Sistemul de numera ţ ie octal utilizeaz ă baza opt ş i este alc ă tuit din urmă toarele opt simboluri: 0, l, 2, 3, 4, 5, 6 şi 7. Şirul de cifre 736 este interpretat ca (478) 10 si (111011110) 2 . Sistemul de numeraţie hexazecimal utilizează baza 16 şi este alcătuit din următoarele simboluri: 0, l, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E şi F. Şirul de cifre F3 este interpretat (243) 10 şi (11110011) 2 .

Upload: others

Post on 16-Sep-2019

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

LABORATOR 2 –  REPREZENTAREA DATELOR. OPERAȚII ARITMETICE ZCB (ZECIMAL CODIFICAT BINAR)  

1. Prezentarea teoretică  

În cadrul acestui  laborator se vor prezenta modalităţile de  reprezentare a numerelor  în calculatoarele numerice, precum şi realizarea operaţiilor de adunare şi scădere a numerelor ZCB. 

În  calculatoarele  numerice,  informaţia  memorată  în  format  binar  se  regăseşte  în  memorie  sau  în registrele  procesorului.  Registrele  conţin  date  sau  informaţii  de  control.  Informaţia  de  control  este formată dintr‐un grup de biţi utilizat  în vederea specificării secvenţei semnalelor de comandă necesare manipulării datelor în registre. Datele sunt numere şi alte informaţii codificate binar, care sunt prelucrate în vederea obţinerii unui rezultat numeric. 

Toate  tipurile  de  date,  cu  excepţia  numerelor  binare,  sunt  reprezentate  în  registrele  calculatorului  în formă binară, deoarece acestea sunt alcătuite din bistabile, care pot memora informaţie 0 sau l . 

Reprezentarea numerelor 

 

Un  sistem  de  numeraţie,  care  utilizează  baza  r  este  un  sistem,  care  foloseşte  simboluri  distincte pentru cifrele r. Fiecărei cifre  îi este asignată un simbol unic. Şirurile prin care se reprezintă numerele sunt compuse  din  simboluri.  Pentru  a  determina  cantitatea  reprezentată  de  un  număr  este  necesar  să  se înmulţească fiecare cifră cu un întreg putere a lui r şi apoi să se formeze suma tuturor cifrelor ponderate. 

Sistemul de numeraţie zecimal este alcătuit din zece simboluri: 0, 1, 2, 3, 4, 5, 6, 7, 8 şi 9. Şirul de cifre 126.3 este interpretat ca: l ×  102 + 2 ×  101 + 6 ×  10° + 3 ×10‐1. 

Sistemul  de  numeraţie binar utilizează baza  2  rezultând  astfel numai două  simboluri  0  şi  l, utilizate  în cadrul acestui sistem de numerație. Şirul de biţi 101111 este interpretat ca: l   ×  25  +  0   ×  24  +   l   ×  23  +  l   ×  22  +   l   ×  21  +   l   ×  20.  

Sistemul de numeraţie octal utilizează baza opt şi este alcătuit din următoarele opt simboluri: 0, l, 2, 3, 4, 5, 6 şi 7. Şirul de cifre 736 este interpretat ca (478)10 si (111011110)2. 

Sistemul de numeraţie hexazecimal utilizează baza 16 şi este alcătuit din următoarele simboluri: 0, l, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E şi F. Şirul de cifre F3 este interpretat (243)10 şi (11110011)2. 

Page 2: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Sistemul de numeraţie binar este cel mai natural sistem pentru calculator (aşa cum s‐a subliniat, circuitele bistabile  pot  memora  doar  0  şi  1),  în  timp  ce  pentru  utilizator,  sistemul  de  numeraţie  zecimal  este considerat  ca  sistem natural. O metodă de  soluţionare  a  acestui  conflict o  constituie  convertirea  tuturor intrărilor  din  format  zecimal  în  format  binar,  realizarea  tuturor  operaţiilor  aritmetice  în  binar  şi  apoi convertirea rezultatului în format zecimal. 

O altă metodă este utilizarea numerelor binare codificate zecimal (ZCB). Este foarte important să nu se confunde  conversia  numerelor  zecimale  în  binar  si  codificarea  binară  a  numerelor  zecimale.  Când  se realizează  conversia  numărului  zecimal  99  într‐un  număr  binar  se  obţine  şirul  de  biţi  1100011, reprezentarea ZCB  fiind 10011001. Singura diferenţă constă  în simbolurile utilizate pentru reprezentarea biţilor. 

În tabelul 4.1 se poate observa codificarea numerelor zecimale în diferite sisteme de numeraţie. 

Codurile complementare 

Reprezentarea  în  cod  complementar  este  utilizată  în  calculatoarele  numerice  pentru  simplificarea operaţiei de scădere şi pentru manipulări logice. Există două tipuri de coduri complementare pentru fiecare bază r folosită: cod complementar faţă de r şi cod complementar faţă de r  ‐ 1. Dacă r este substituit cu 2 atunci se obţine cod complementar faţă de 2 şi cod complementar faţă de 1. Analog dacă r este substituit cu 10. 

Cod complement faţă de r ‐ 1 

Fie dat numărul N  în baza r având n ranguri. Reprezentarea numărului N  în cod complementar faţă de r ‐ l este definită ca (rn ‐ 1) ‐ N. În cazul numerelor zecimale, r = 10 şi r ‐ l = 9, reprezentarea numărului N    în cod complementar faţă de 9 este (10n ‐ 1) ‐ N. 

10n reprezintă un număr care conţine un singur l urmat de un număr de n digiţi 0. 10n ‐ l este un număr reprezentat de n digiţi 9. Dacă n = 4, spre exemplu, 104 = 10000 şi 104 ‐ l = 9999. Concluzia care se impune  este  următoarea:  complementul  faţă  de  9  al  unui  număr  zecimal  este  obţinut  prin  scăderea fiecărui digit din 9. Ca exemplu, se consideră numărul N = 546700 dat. Reprezentarea numărului N  în cod complementar faţă de 9 este: 999999 ‐ 546700 = 453299. 

Dacă substituim r cu 2 atunci r ‐ 1 = l, iar numărul N reprezentat în cod complementar faţă de l este (2n ‐ 1) ‐ N. Raţionând ca în cazul complementului faţă de 9, se ajunge la concluzia următoare: complementul faţă de l al unui număr binar este obţinut scăzând fiecare bit din 1. 

 

Număr hexazeci‐mal 

Hexazecimal codificat binar 

Număr octal 

Octal  codi‐ficat binar 

Număr ZCB 

Număr zecimal 

0  0000  0  000  0000  0 1  0001  1  001  0001  1 2  0010  2  010  0010  2 3  0011  3  011  0011  3 4  0100  4  100  0100  4 

Page 3: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

5  0101  5  101  0101  5 6  0110  6  110  0110  6 7  0111  7  111  0111  7 8  1000      1000  8 9  1001      1001  9 A  1010        10 B  1011        11 C  1100        12 D  1101        13 E  1110        14 F  1111        15 

Tabelul 4.1: Reprezentarea numerelor zecimale în diferite sisteme de numeraţie. 

Când se efectuează scăderea se observă că modificarea biţilor este 0  în  l sau  l  în 0. Astfel, se poate concluziona: complementul  faţă de  l al unui număr binar se obţine prin  inversarea biţilor numărului N. Spre exemplu, reprezentarea numărului N = 1011001 în cod complementar faţă de l este 0100110. Dacă r este substituit cu 8 sau 16 atunci se scade fiecare digit al numărului N din 7 respectiv F. 

 

Complementul faţă de r 

Complementul faţă de r al unui număr de n digiţi, N, în baza r este definit ca rn ‐ N în cazul în care N  ≠  0 şi 0 dacă N = 0. Comparând cu complementul  faţă de r  ‐ 1, se observă că, complementul  faţă de r este obţinut prin adăugarea  lui  l  la complementul faţă de r  ‐ 1. Astfel, complementul faţă de 10 al numărului zecimal N = 2389 este 7610 +  l = 7611, iar complementul faţă de 2 al numărului binar N = 101100 este 010011 + l = 010100. 

Complementul faţă de 10 poate fi însă format şi aplicând următoarea procedură: 

• rămân nemodificate toate cifrele zero cele mai puţin semnificative;  • se scade prima cifră diferită de zero (cea mai puţin semnificativă) din 10;  • se scad celelalte cifre până la cifra cea mai semnificativă.  

Conform procedurii, reprezentarea numărului N = 246700 în cod complementar faţă de 10 este 753300. În mod similar se procedează în cazul reprezentării în cod complementar faţă de 2. Se păstrează toţi biţii cei mai puţin semnificativi neschimbaţi dacă valoarea lor este 0, precum şi primul bit cel mai puţin semnificativ care are valoarea 1. Se înlocuiesc toţi ceilalţi biţi cu l dacă valoarea lor este 0 si cu 0 dacă valoarea lor este 1. Numărul binar N = 1101100 este reprezentat în cod complement faţă de 2 ca 0010100. 

Alte coduri binare 

În calculatoarele numerice precum  şi  în diverse aplicaţii este necesar  să  se utilizeze alte coduri precum codul Gray, codul 2421, codul excess‐3 Gray, etc. Acestea sunt prezentate în tabelele 4.2 şi 4.3. 

Page 4: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Cod Gray 

Număr zecimal echivalent 

Cod Gray 

Număr zecimal echivalent 

0000  0  1100  8 0001  1  1101  9 0011  2  1111  10 0010  3  1110  11 0110  4  1010  12 0111  5  1011  13 0101  6  1001  14 0100  7  1000  15 

Tabelul 4.2: Codul Gray.  

Digital zecimal 

BCD 8421 

2421  Excess‐3  Excess‐3 Gray 

0  0000  0000  0011  0010 1  0001  0001  0100  0110 2  0010  0010  0101  0111 3  0011  0011  0110  0101 4  0100  0100  0111  0100 5  0101  1011  1000  1100 6  0110  1100  1001  1101 7  0111  1101  1010  1111 8  1000  1110  1011  1110 9  1001  1111  1100  1010 

Tabelul 4.3: Diferite coduri pentru cifrele zecimale.  

2. ZCB  

În majoritatea dispozitivelor numerice, operaţiile de prelucrare  a  informaţiilor  se desfăşoară  în binar.  În multe  aplicaţii  este  necesară  o  afişare  directă,  pe  dispozitive  cu  şapte  segmente  (sau  tuburi  NIXIE),  a informaţiei prelucrate. Din acest motiv, este necesară o conversie a valorii binare, în zecimal codificat binar (ZCB). Codul ZCB permite o decodificare uşoară pentru dispozitive cu şapte segmente. 

 

Convertoarele prezentate sunt de următoarele tipuri: 

• ASINCRON  –  realizate  numai  cu  reţele  combinaţionale  de  porţi  logice.  Tehnica  de  conversie  se bazează pe metodele descrise de J.P. Couler; 

• SINCRON – serie şi paralel, utilizând registre de deplasare şi sumatoare; • SECVENŢIAL – utilizând numărătoare binare şi decadice. 

 

Page 5: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

2.1. Conversie din binar în ZCB  

Un număr binar, se exprimă de obicei sub forma: Nb = bn‐1 bn‐2 ... b1 b0 unde n este numărul de biţi. bj este o valoare egală cu 0 sau 1. Valoarea zecimală a acestui număr este:  

NZ = bn‐1* 2n‐1 + bn‐2 * 2n‐2 + ... + b1 * 21 + b0 * 20 

Sau sub formă de înmulţire cu 2 prin împachetare: 

NZ = (...((bn‐1 * 2 + bn‐2) * 2 + bn‐3) * 2 + ... + b1) * 2 + b0 

Înmulţirea cu 2 prin împachetare, se poate realiza prin deplasare la stânga. 

 

Exemplu: NZ = (((b3 * 2 + b2) + b1) + b0 valoarea zecimală a numărului binar NB = b3b2b1b0. 

 

  0  0  0  b3  NZ = b3 

  0  0  b3  b2  NZ = b3 * 2 + b2 

  0  b3  b2  b1  NZ = (b3 * 2 + b2) * 2 + b1 

  b3  b2  b1  b0  NZ = ((b3 * 2 + b2) * 2 + b1) * 2 + b0 

 

Se  observă  că  pentru  a  converti  un  număr  binar  NB  într‐un  număr  ZCB,  trebuie modificate  ponderile corespunzătoare  biţilor  registrului,  efectuând  corecţiile  necesare  în  timpul  deplasării.  În  acest  scop registrul,  care  va  păstra  numărul  ZCB,  va  trebui  împărţit  în  grupe  de  4  biţi  (decade).  Biţii  unei  decade d8d4d2d1 vor avea ponderile 8, 4, 2, 1 şi valoarea reprezentată nu va depăşi valoarea 9. 

 

Orice deplasare la stânga va însemna o înmulţire cu 2. În momentul în care o decadă conţine un număr mai mare  decât  4,  rezultatul  deplasării  va  depăşii  valoarea  10  şi  în  acest  caz  va  trebui  făcută  următoarea corecţie:  înainte de deplasare,  se adaugă valoarea 3,  la acele decade  care  conţin un număr mai mare decât 4. Corecţia prezentată rezultă din următoarele constatări: 

 

• dacă valoarea decadei este mai mică sau egală cu 4 prin deplasare la stânga cu o poziţie se obţine un număr mai mic decât 9. Prin urmare nu trebuie făcută nici o corecţie

• dacă valoarea decadei este mai mare decât 4 şi mai mică sau egală cu 7, prin deplasarea la stânga cu o poziţie se obţine un număr mai mare decât 9. se poate scrie:  

 

decadă * 2 = (5 + (decadă ‐ 5)) * 2 = 10 + (decadă ‐ 5) * 2 

 

Page 6: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Se observă că înainte de deplasare se scade 5, iar după deplasare se adaugă 1 la poziţia cea mai puţin semnificativă din decada următoare. Acelaşi lucru se poate realiza dacă se scade valoarea 5 înainte de deplasare şi se forţează  în bitul d8 al decadei valoarea 1 (echivalent cu a aduna valoarea 8  înainte de deplasare). Deci  înainte de deplasare, se adaugă 8 şi se scade 5, ceea ce este echivalent cu a aduna 3 înainte de deplasare. 

• dacă valoarea decadei este mai mare sau egală cu 8 şi mai mică sau egală cu 9, după deplasare bitul cu ponderea 8  (egal  cu 1) va  trece  în bitul  cel mai puţin  semnificativ al decadei următoare. Prin aceasta, valoarea se modifică de  la 8  la 10  în  loc să se modifice de  la 8  la 16. Are  loc o pierdere egală cu 6. Corecţia se poate  face, după deplasare, adunând 6  la valoarea decadei sau  înainte de deplasare adunând 3. 

 

Exemplu: 

NB = 10111 

NZ = 23 

NZCB = 0010  0011 

 

0000  0000      1 0 1 1 1 

0000  0001          < 4 nu se face corecţie 

0000  0010          < 4 nu se face corecţie 

0000  0101 +         > 4 se face corecţie 

      11 

 

0000  0001          < 4 nu se face corecţie 

0001  0011 

 

Modul de conversie prezentat mai sus este serie‐sincron şi necesită un transfer paralel – serie a informaţiei la intrare. 

 

2.2. Conversie BINAR paralel – ZCB paralel de tip sincron  

Cu ajutorul reţelelor de porţi  logice, nesincronizate se poate face o conversie BINAR paralel – ZCB paralel. Prin  faptul  că  un  număr  binar mai mare  decât  4  trebuie  corectat  prin  adunarea  valorii  3,  înainte  de deplasare, se poate concepe o schemă combinaţională, care să efectueze corecţii fără a apela un sumator. 

 

Page 7: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

 

unde:  X = (X3, X2, X1, X0) vector de intrare 

  Y = (Y3, Y2, Y1, Y0) vector de ieşire 

iar  Y = X pentru X ≤  4 

  Y = X + 3 pentru X > 4 

Sinteza circuitului combinaţional, care realizaeză corecţia se face pe baza următoarei tabele de adevăr: 

 

X3  X2  X1  X0  Y3  Y2  Y1  Y0 

0  0  0  0  0  0  0  0 

0  0  0  1  0  0  0  1 

0  0  1  0  0  0  1  0 

0  0  1  1  0  0  1  1 

0  1  0  0  0  1  0  0 

0  1  0  1  1  0  0  0 

0  1  1  0  1  0  0  1 

0  1  1  1  1  0  1  0 

1  0  0  0  1  0  1  1 

1  0  0  1  1  1  0  0 

1  0  1  0  *  *  *  * 

1  0  1  1  *  *  *  * 

1  1  0  0  *  *  *  * 

1  1  0  1  *  *  *  * 

1  1  1  0  *  *  *  * 

1  1  1  1  *  *  *  * 

 

Page 8: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

210302

302103200

XXXXXY

XXXXXXXXY

+=

++=     

321203

2130101

XXXXXYXXXXXXY

++=++=

 

Utilizând celula elementară din figură, se poate realiza o conversie BINAR – ZCB. În figura 1 se prezintă un exemplu de conversie asincronă pentru numărul binar NB = 10111. 

 

 

 

Conversia sincronă a numărului NB = 10111  

În figura următoare se prezintă o schemă de conversie asincronă BINAR paralel – ZCB paralel pe 10 biţi ce poate fi uşor generalizată. 

 

 

 

 

 

 

 

 

 

 

Structură de conversie asincronă BINAR paralel – ZCB paralel utilizând celule elementare  

Page 9: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

2.3. Conversia sincronă BINAR serie – ZCB paralel  

Conversia  BINAR  serie  –  ZCB  paralel  funcţionează  pe  baza  corecţiei  prezentate  anterior.  Realizarea conversiei se poate face cu registre de deplasare (X74_194) şi sumatoare (X74_283) aşa cum se prezintă în figura 3. Funcţiile de corecţie fci rezultă din tabela de adevăr de mai jos. 

 

 

 

 

fci = di8 + di1 * di4 + di2 * di4  unde i = 1, 2, 3, ..., n 

 

 

Iniţial registrele trebuiesc şterse, iar această operaţie se realizaeză activând semnalul CLR (=0), un timp egal cu  n*4  perioade  de  TACT.  Corecţia  se  face  cu  ajutorul  sumatoarelor,  iar  deplasarea  prin  legarea conexiunilor,  deplasate  la  dreapta  cu  o  poziţie.  Diagrama  de  stări  utilizată  în  proiectarea  unităţii  de comandă din figura Conversie BINAR serie – ZCB paralel este următoarea: 

 

Page 10: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale
Page 11: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Conversie BINAR serie – ZCB paralel 

 

Page 12: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

2.4. Conversia secvenţială BINAR – ZCB  

Un mod simplu de conversie BINAR – ZCB se poate  realiza utilizând numărătoare  reversibile. Schema de principiu a unui astfel de convertor este prezentată în figura 4. 

 

 

 

Schema bloc de conversie secvenţială BINAR – ZCB  

Valoarea binară ce trebuie convertită, se introduce în paralel într‐un numărător binar reversibil (CB4CLED) 

şi se şterge un numărător decadic (X74_168). Impulsurile de TACT, vor decrementa numărătorul binar şi vor 

incrementa numărătorul decadic. În momentul în care numărătorul binar ajunge la valoarea zero, se 

blochează generatorul de TACT, lăsând în acest mod trecerea unui număr de impulsuri egal cu valoarea 

numărului binar ce trebuie convertit. Impulsurile de TACT au fost numărate ZCB de numărătorul decadic, 

unde se va găsi în final valoarea convertită. 

 

De obicei valorile ZCB sunt afişate pe dispozitive de afişare cu 7 segmente. Pentru a putea fi afişată o 

valoare ZCB pe un dispozitiv de afişare cu 7 segmente, ea va trebui să fie decodificată. Decodificarea ZCb – 

dispozitiv cu 7 segmente se poate realiza cu un decodificator. Schema de detaliu privind conversia BINAR – 

ZCB de tip secvenţial se poate observa în figura următoare. 

 

 

Page 13: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale
Page 14: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Conversie secvenţială BINAR – ZCB 

 

Page 15: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Semnalul LOAD, activ pe nivelul 1, va încărca în numărătorul binar valoarea binară, va şterge numărătorul 

decadic şi va debloca poarta de acces a semnalului TACT; iar pe nivelul 1 va permite funcţionarea 

numărătoarelor. În momentul în care numărătorul binar ajunge la valoarea zero, se va genera un împrumut 

(BORROW), care prin intermediul bistabilului FDRS va bloca calea de acces a semnalului TACT. Prin aceasta 

conversia a luat sfârşit. 

 

2.5. Conversia din ZCB în Binar  

Pentru realizarea conversiei din ZCB în BINAR, numărul ZCB este extras înceăând cu partea cea mai puţin 

semnificativă. Deplasarea spre dreapta înseamnă o împărţire cu 2. Trecerea unei unităţi de la o decadă la 

alta înseamnă, faptul, că valoarea scade de la 10 la 8 în loc să scadă de la 10 la 5. Rezultatul deplasării este 

mai mare cu 3. Trebuie făcută o corecţie, care constă în a scădea valoarea 3, după deplasare, din valorile 

mai mari ca 8. 

 

2.6. Conversia sincronă ZCB paralel – BINAR paralel  

Corecţia se face cu ajutorul unei celule elementare. 

 

 

 

Celula elementară folosită în cazul conversiei asincrone ZCB paralel – BINAR paralel  

Page 16: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Ecuaţiile logice pentru celula elementară sunt: 

 

31032331031101

32031032230300

vvvvvwvvvvvvvw

vvvvvvvvwvvvvw

+=++=

++=+= 

 

În figura de mai jos este prezentată o structură de conversie asincronă ZCB paralel – BINAR paralel, 

utilizând celula elementară. 

 

 

 

Conversia asincronă ZCB paralel – BINAR paralel.  

Page 17: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

2.7. Conversie sincronă din ZCB paralel în BINAR paralel 

 Convertorul ZCB paralel, utilizează logica combinaţională directă pentru a realiza o conversie de mare 

viteză. Conversia se realizează cu sumatoare (X74_283). Timpul de conversie este limitat la timpul de 

propagare al sumatoarelor. Circuitul de bază poate fi extins la orice număr de decade. Un număr ZCB se 

poate exprima ca valoare zecimală astfel: 

∑=

+++=n

iiiiiZ ddddiN

0

38

2421 )2*2*2*(10  

unde:  { }1,0.... 81 ∈ii dd ; di1 este bitul cel mai puţin semnificativ din decada 10i ; di8 este bitul cel mai 

semnificativ din decada 10i iar n reprezintă numărul de decade. 

 

Se poate exprima valoarea numărului şi astfel: 

∑∑= =

+++=n

i

p

jiiii

jjZ ddddcN

0 0

38

2421 )2*2*2*(2  

unde p = R{i};  { }1,0∈jc  sau o formă echivalentă:  

∑ ∑∑= ==

− ++=n

i

p

jiii

jj

i

j

kiZ dddaN

0 0

3421

0

23 )2*2*(22  

unde m = R2{k};  }1,0{∈ia . Valoarea numărului ZCB poate fi exprimată sub forma: 

∑=

=l

j

jjZ bN

02  unde  { } { }1,0;3 ∈= jbnRl  

Ţinând seama că ultimele trei relaţii exprimă valoarea aceluiaşi număr prin identificarea puterilor lui 2, va 

rezulta: bj = R4 {di1, di2, di4, di8}.  

 

 

 

Page 18: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Exemplu  n = 2 ⇒  l = 9, p = 6, m = 1, iar în urma identificării: 

b0 = d01 

b1 = d02 + d11 

b2 = d04 + d12 + d21 

b3 = d08 + d11 + d14 + d22 

b4 = d12 + d18 + d24 

b5 = d14 + d21 + d28 

b6 = d18 + d21 + d22 

b7 = d22 + d24 

b8 = d24 + d28 

b9 = d28 

 

Circuitul care realizează conversia pentru cazul n = 2 este prezentat în figura următoare. 

 

 

 

 

 

 

 

 

Page 19: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale
Page 20: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Conversie din ZCB paralel în BINAR paralel 

 

Page 21: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

2.8. Conversia din ZCB serie în BINAR serie  

Introducerea biţilor ZCB în convertor se face serial. Este nevoie deci de a asigura deplasarea a n*4 biţi, unde 

n este numărul de decade. După ce numărul ZCb a fost introdus în registrul de deplasare al convertorului, 

se ţine seama că deplasarea unei unităţi de la o decadă la alta implică o corecţie. Corecţia constă în a 

scădea valoarea 3, sau a aduna complementul lui 3 (1101) faţă de 2. Schema de conversie este prezentată 

în figura 10. 

 

Diagrama de stări utilizată în proiectarea unităţii de comandă din figura 10 este următoarea: 

 

 

 

 

 

 

Page 22: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

Figura 10.  Conversie ZCB serie – BINAR serie 

Page 23: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 23!

2.9. Dispozitiv aritmetic ZCB  

În multe cazuri este necesar, să se efectueze operaţii aritmetice folosind numere zecimale. Această 

necesitate apare în sistemele, în care se doreşte afişarea directă pe dispozitive cu 7 segmente şi în toate 

cazurile în care se preferă evitarea conversiei. Majoritatea sistemelor de afişare numerică utilizează 

direct reprezentările în cod zecimal codificat binar. Efectuarea operaţiilor în cod zecimal este 

avantajoasă în momentul în care numărul de informaţii introduse este mai mare, iar operaţiile 

desfăşurate sunt puţine şi simple. 

 

Avantajul codului ZCb ponderat 8‐4‐2‐1 este că, adunarea este identică cu adunarea obişnuită pentru 

fiecare bit din decadă. Unul din dezavantajele codului ZCB este dificultatea obţinerii complementului 

faţă de 9. În acest punct al lucrării de laborator se doreşte să se stabilească modul de desfăşurare a 

operaţiilor aritmetice în cod ZCb şi să se prezinte câteva scheme bloc de prelucrare. Se vor descrie 

operaţiile de adunare şi scădere în ZCB de tip paralel şi de tip serie‐paralel. 

 

În sistemul zecimal, fiecare cifră este exprimată în cod binar, deci cifrele sunt reprezentate în cod binar. 

Întrucât cu n elemente binare  }1,0{∈jx , j = 1, 2, ..., n se pot realiza 2n stări distincte, pentru 

reprezentarea celor zece stări posibile ale unei cifre zecimale sunt necesare cel puţin patru elemente (24 

> 10). În cazul în care se aleg patru cifre binare pentru reprezentarea unei cifre zecimale, se pot alege 10 

stări din cele 16 posibile. Felul în care se aleg aceste stări poate duce la simplificarea circuitelor de calcul 

şi de comandă a unităţii aritmetice zecimale. De aceea în alegerea celor 10 stări din 16 posibile se va ţine 

seama de: 

• metoda utilizată pentru adunare şi scădere 

Page 24: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 24!

• necesitatea de complementare • realizarea conversiei cifrei zecimale în cifră binar‐zecimală 

 

Deoarece se poate considera orice grup de zece stări din 16 stări distincte realizate cu 4 biţi, pentru a 

exprima cifrele zecimale în binar, există  1010*9.2!6!16≅  coduri posibile pentru numerele binar‐

zecimale. Nu toate aceste coduri sunt distincte. Eliminând stările izomorfe se reduce numărul de stări, 

însă acesta rămâne totuşi destul de mare. În general există două tipuri de coduri: 

• coduri ponderate • coduri neponderate 

 

Dintre codurile ponderate cel mai des utilizat s‐a dovedit a fi codul ZCB cu ponderile 8, 4, 2, 1 iar dintre 

codurile neponderate codul exces 3. În tabelul de mai jos se prezintă câteva coduri binar‐zecimale care 

sunt mai des utilizate: 

 

Codul binar  Codul 8, 4, 2, 1  Codul 2, 4, 2, 1  Codul 5, 2, 1, 1  Codul exces 3 

0000  0000 = 0  0000 = 0  0000 = 0   

0001  0001 = 1  0001 = 1  0001 = 1   

0010  0010 = 2  0010 = 2     

0011  0011 = 3  0011 = 3  0011 = 2  0011 = 0 

0100  0100 = 4  0100 = 4    0100 = 1 

0101  0101 = 5    0101 = 3  0101 = 2 

0110  0110 = 6      0110 = 3 

Page 25: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 25!

0111  0111 = 7    0111 = 4  0111 = 4 

1000  1000 = 8    1000 = 5  1000 = 5 

1001  1001 = 9    1001 = 6  1001 = 6 

1010        1010 = 7 

1011    1011 = 5  1011 = 7  1011 = 8 

1100    1100 = 6    1100 = 9 

1101    1101 = 7  1101 = 8   

1110    1110 = 8     

1111    1111 = 9  1111 = 9   

 

Coduri zecimal codificate binar  

Primele trei coduri sunt coduri ponderate, iar ultimul este un cod neponderat. În codul ponderat 8, 4, 2, 

1 cele zece numere de cod corespund cu primele zece numere binare. Codul 2, 4, 2, 1 a fost utilizat în 

calculatorul HARWARD. El are o proprietate interesantă şi anume este autocomplementar. Aceeaşi 

proprietate o are şi codul exces 3. Într‐un cod ponderat care are şi proprietatea de 

autocomplementaritate, suma ponderilor este egală cu 9. 

 

Deşi patru biţi sunt suficienţi pentru a codifica o cifră zecimală, au fost folosite şi coduri cu mai mulţi biţi. 

Astfel au fost folosite codurile 8‐6‐4‐2‐1 în calculatoarele HARWARD, 5‐0‐4‐3‐2‐1‐0 numit şi cod bichinar 

în calculatoarele Belly Relay şi IBM‐650 codul 2 din 5 şi codul 5‐4‐3‐2‐1‐0. Codurile cu mai mult de 4 biţi 

Page 26: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 26!

au proprietăţi ce sunt folosite pentru realizarea circuitelor de autoverificare. Avantajele obţinute sunt pe 

seama complicării circuitelor, deci a creşterii costului. 

 

Numerele zecimale cu semn, se reprezintă prin plasarea unei cifre binare care codifică semnul, de obicei 

0 pentru plus, 1 pentru minus, în faţa ordinului cel mai semnificativ al numărului. Există trei moduri 

pentru reprezentarea cifrelor numărului: 

• reprezentarea prin mărime şi semn • reprezentarea prin complementul faţă de 10 • reprezentarea prin complementul faţă de 9 

 

În general dispozitivele zecimale pot avea o varietate de forme mai numeroase decât cele binare. O 

primă clasificare se face după natura codului binar‐zecimal utilizat, deci după structura sumatorului 

elementar. O altă clasificare se face după modul în care se execută operaţiile şi anume: serie‐serie, serie‐

paralel, paralel‐paralel. 

 

2.10. Adunarea în ZCB  

Pentru codul ZCB se consideră codul ponderat 8‐4‐2‐1. Adunarea în cod ZCB este identică cu adunarea 

binară. Suma pentru fiecare decadă trebuie corectată considerând transferul la decada următoare şi 

rezultatele care au valori cuprinse între 10 şi 15. În momentul adunării a două decade rezultă douăzeci 

de sume posibile. Dintre acestea, numai zece vor fi corecte, celelalte necesitând corecţii. În tabelul 

următor sunt prezentate sumele a două cifre ZCB înainte de corectare şi după corectare. 

 

Page 27: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 27!

Suma incorectă 

Tpj   Spj8   Spj4   Spj2   Spj1 

Suma corectă 

Tj   Sj8   Sj4   Sj2   Sj1 

          0       0      0       0          0     0     0     0   = 0 

          0       0      0       1          0     0     0     1   = 1 

          0       0      1       0          0     0     1     0   = 2 

          0       0      1       1          0     0     1     1   = 3 

          0       1      0       0          0     1     0     0   = 4 

          0       1      0       1          0     1     0     1   = 5 

          0       1      1       0          0     1     1     0   = 6 

          0       1      1       1          0     1     1     1   = 7 

          1       0      0       0          1     0     0     0   = 8 

          1       0      0       1          1     0     0     1   = 9 

          1       0      1       0  1      0     0     0     0   = 10 

          1       0      1       1  1      0     0     0     1   = 11 

          1       1      0       0  1      0     0     1     0   = 12 

          1       1      0       1  1      0     0     1     1   = 13 

          1       1      1       0  1      0     1     0     0   = 14 

          1       1      1       1  1      0     1     0     1   = 15 

1        0       0      0       0  1      0     1     1     0   = 16 

Page 28: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 28!

1        0       0      0       1  1      0     1     1     1   = 17 

1        0       0      1       0  1      1     0     0     0   = 18 

1        0       0      1       1  1      1     0     0     1   = 19 

 

Rezultatele adunării ZCB a două numere  

Pentru o sumă egală sau mai mare decât 10, este necesar un transport spre decada următoare şi o 

corecţie ce constă în a scădea valoarea 10 din decada următoare. Scăderea valorii 10 este echivalentă cu 

adunarea complementului faţă de 2, care este 0110 sau 6 în zecimal. Din tabelul de mai sus se observă 

că transferul Tj în cazul sumei corectate este: Tj = Tpj + tj unde Tpj este transferul bitului Spj8 la stânga în 

cazul sumei necorectate, iar tj este o funcţie de Spj8, Spj4, Spj2, Spj1. Funcţia tj rezultă din următoarea 

diagramă Karnaugh: 

 

În figura următoare se prezintă o celulă elementară pentru adunarea a două decade Sj = Aj + Bj. Cu 

ajutorul celulei elementare de însumare în ZCB, se poate realiza o unitate aritmetică de adunare. 

Aceasta poate fi de tip paralel sau de tip serie‐paralel. 

 

Page 29: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 29!

 

Celula elementară de adunare ZCB  

2.11. Adunarea ZCB de tip paralel  

Pentru a realiza un sumator ZCB paralel se utilizează câte o celulă elementară de însumare pentru 

fiecare cifră zecimală (decadă). Cea mai simplă formă este cea cu transport succesiv şi se realizează 

legând în cascadă sumatoare elementare. În figura de mai jos se prezintă schema bloc a unui sumator 

ZCB paralel. 

Page 30: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 30!

 

 

Sumator ZCB paralel 

2.12. Scăderea în ZCB Dacă se scade o cifră zecimală şi eventual un împrumut dintr‐o cifră zecimală, în codul 8‐4‐2‐1, există 20 

de diferenţe corecte de la 9 la –10. În tabelul următor se prezintă diferenţele incorecte şi diferenţele 

corecte ale unei operaţii de scădere. 

Rezultatele scăderii a două numere ZCB 

 

Page 31: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 31!

Dacă numărul împrumută o unitate (‐1) el apare în reprezentarea prin complement faţă de 10. În 

continuare vom considera că operanzii negativi vor fi reprezentaţi în complement faţă de 9. În această 

reprezentare operaţia de scădere va fi mai uşor de realizat. Operaţia de scădere a doi operanzi ZCB 

constă în adunarea complementului faţă de 9 al scăzătorului la descăzut. Complementul faţă de 9 al unei 

cifre zecimale reprezentate în cod ZCB, se realizează conform diagramei prezentate în tabelul următor: 

 

 

Complementul faţă de 9 al unei cifre ZCB  

Din tabelul de mai sus rezultă ecuaţiile logice pentru complementul faţă de 9: 

c8 = d8 * d4 * d2 

c4 = d4 + d2 

c2 = d2 

c1 = d1 

Implementarea ecuaţiilor, se poate realiza uşor aşa cum se vede în figura următoare. 

Page 32: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 32!

 

Realizarea complementului faţă de 9  

2.13. Scăzător ZCB în complement faţă de 1  

În cele ce urmează se prezintă un algoritm pentru realizarea scăderii numerelor ZCb reprezentate prin 

mărime şi semn. Algoritmul ţine seama de semnul decadei (transport din bitul cel mai semnificativ al 

decadei) şi semnul rezultatului (transport din rangul cel mai semnificativ). 

 

Descăzutul se adună cu complementul faţă de 1 al scăzătorului. Transportul (Tn) ce rezultă din rangul cel 

mai semnificativ se adună circular la rangul cel mai puţin semnificativ şi constituie şi semnul rezultatului. 

Astfel Tn = 0 înseamnă că rezultatul este negativ, iar Tn = 1 rezultatul este pozitiv. În final, trebuie făcută 

o corecţie, pentru fiecare decadă în parte în funcţie de semnul decadei (Tj) şi semnul rezultatului (Tn). 

Corecţia este următoarea: 

 

Page 33: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 33!

 

 

În figura următoare se prezintă un scăzător ZCB elementar, ce utilizează complementul faţă de 1 al 

scăzătorului. 

 

 

Scăzător paralel ZCB (complement faţă de 1)  

Utilizând o celulă elementară se poate concepe un scăzător de tip paralel. Schema bloc se prezintă în 

figura următoare. 

 

Page 34: LABORATOR 2 REPREZENTAREA DATELOR OPERAȚII …cpop/Calculatoare_Numerice_CN I/CN I_Labs... · confunde conversia numerelor zecimale în binar si codificarea binară a numerelor zecimale

! 34!

 

 

Scăzător ZCB (complement faţă de 1 al scăzătorului elementar)