Documente Academic
Documente Profesional
Documente Cultură
Aparatele digitale sunt construite din circuite care lucrează cu cifre binare 0 şi 1 cu
toate că foarte puţine dintre problemele din viaţa de zi cu zi se bazează pe numerele binare sau
pe orice fel de numere, în general. De aceea, inginerul trebuie să stabilească un fel de
corespondenţă între numerele digitale, care pot fi prelucrate de circuitele digitale, şi numerele,
evenimentele şi condiţiile din viaţa reală. Scopul capitolului de faţă este de a vă arată în ce
mod mărimile numerice familiare pot fi reprezentate şi prelucrate într-un sistem digital,
precum şi modul în care pot fi reprezentate şi datele, evenimentele şi condiţiile numerice.
În această expresie, 10 este baza sistemului de numeraţie. În general, baza unui sistem
de numeraţie zecimal poate fi orice întreg r ≥ 2, iar ponderea cifrei din poziţia i este ri. Într-un
astfel de sistem, forma generală a unui număr este:
p −1
D= ∑d
i=− n
i ⋅ ri (2.3)
Dacă nu luăm în consideraţie eventualele zerouri ce pot apare înaintea unui număr sau
la sfârşitul lui, reprezentarea unui număr într-un sistem de numeraţie este unică. De exemplu:
Cifra din stânga este cifra de cel mai mare ordin sau cifra cea mai semnificativă;
cifra cea mai din dreapta este cifra de cel mai mic ordin sau cifra cea mai puţin
semnificativă.
În circuitele digitale, semnalele pot avea, în mod normal, una din singurele două stări
posibile: de jos sau de sus, cu sarcină sau fără sarcină, oprit sau pornit. Astfel de semnale sunt
interpretate ca reprezentând cifre binare (sau biţi), ale căror valori posibile sunt 0 sau 1.
Aceasta este cauza pentru care s-a ales baza de numeraţie 2 (sau binară) pentru
reprezentarea numerelor în sistemele digitale. Forma generală a unui număr binar este:
p −1
B= ∑b
i=− n
i ⋅ 2i (2.5)
inversă a apariţiei reprezintă coeficienţii numărului convertit (primul rest obţinut este cifra cea
mai puţin semnificativă, iar ultimul, cea mai semnificativă).
CÂT REST
29:2 = 14 1
14:2 = 7 0
7:2 = 3 1
3:2 = 1 1
Conversia părţii zecimale se face după cum urmează: se înmulţeşte partea zecimală cu
baza, obţinând un număr ce are parte întreagă şi parte zecimală. Partea zecimală se înmulţeşte
din nou cu baza şi aşa mai departe până când rezultatul înmulţirii este zero sau până când se
obţin destule cifre ale numărului convertit. Părţile întregi, luate în ordinea apariţiei, reprezintă
coeficienţii (cifrele) numărului zecimal convertit.
PARTE PARTE
ÎNTREAGĂ ZECIMALĂ
0,85·2= 1 + 0,7
0,7 ·2= 1 + 0,4
0,4 ·2= 0 + 0,8
0,8 ·2= 1 + 0,6
0,6 ·2= 1 + 0,2
0,2 ·2= 0 + 0,4
11101,110112 = 1⋅24 + 1⋅23 +1⋅22 + 0⋅21 +1⋅20 + 1⋅2-1 + 1⋅2-2 + 0⋅2-3 + 1⋅2-4 +1⋅2-5 =
= 16 + 8 + 4 + 0 + 1 + 0.5 + 0.25 + 0 + 0.0625 + 0.03125
= 29, 8437510
Bitul cel mai din stânga al unui număr binar este numit bitul de cel mai mare ordin
sau bitul cel mai semnificativ (MSB – Most Significant Bit); bitul cel mai din dreapta este
bitul de cel mai mic ordin sau bitul cel mai puţin semnificativ (LSB – Least Significant
Bit).
BAZA
10 2 8 16
0 0000 000 0
1 0001 001 1
2 0010 010 2
3 0011 011 3
4 0100 100 4
5 0101 101 5
6 0110 110 6
7 0111 111 7
8 1000 - 8
9 1001 - 9
10 1010 - A
11 1011 - B
12 1100 - C
13 1101 - D
14 1110 - E
15 1111 - F
Metoda de conversie binar – hexazecimal este similară, numai că, în acest caz, grupele
formate sunt de câte 4 biţi.
În exemplele de mai sus s-au adăugat în stânga numerelor atâtea zerouri câte au fost
necesare pentru ca numărul total de biţi să fie multiplu de 3 sau de 4, după caz.
Dacă un număr are cifre semnificative la dreapta virgulei, le putem converti în octal
sau în hexazecimal aplicând acelaşi procedeu de la virgulă către dreapta. Atât în stânga, cât şi
în dreapta unui număr putem adăuga zerouri pentru a obţine un număr de biţi multiplu de 3
sau de 4, ca în exemplul următor.
Conversia în sens invers, din octal sau hexazecimal în binar, se face foarte uşor.
Trebuie doar să înlocuim fiecare cifră din octal sau hexazecimal cu şirul corespunzător de 3
sau 4 biţi.
Exemplul 5.
12348 = 001 010 011 1002
2147,358 = 010 001 100 111,011 1012
BCAE16 = 1011 1100 1010 11102
8F,57D16 = 1000 1111, 0101 0111 11012
Sistemul de numeraţie octal a fost destul de mult utilizat cu 25 de ani în urmă datorită
unor minicalculatoare care aveau lămpile şi comutatoarele de pe panoul frontal grupate câte 3.
Astăzi, însă sistemul de numeraţie octal nu mai este utilizat pe scară largă din cauza
preponderenţei echipamentelor care lucrează cu octeţi (byte), adică grupe de câte 8 biţi. Este
dificil de calculat în octal valori de octeţi separaţi pornind de la valori exprimate prin mai
mulţi octeţi.
234567103218 = 010 011 100 101 110 111 001 000 011 010 0012
În general, conversia între două baze de numeraţie nu se poate efectua doar printr-o
simplă substituţie; sunt necesare unele operaţii aritmetice. În continuare vom arăta cum se
converteşte un număr din orice bază în baza 10 şi invers, folosind pentru aceasta calcule
aritmetice în baza 10.
Din relaţia (2.3) valoarea numărului poate fi calculată prin conversia fiecărei cifre a
numărului în echivalentul ei în baza 10, urmată de aplicarea formulei, în care calculele se
efectuează tot în baza 10.
O formulă pentru conversia directă a numerelor întregi din baza r în baza 10 se poate
obţine scriind formula (1.3) astfel:
Pornim deci de la suma 0; începând cu cifra cea mai din stânga, înmulţim suma cu r şi
adunăm la rezultat cifra următoare; aplicăm procedeul până când am luat în calcul toate
cifrele.
Exemplul 9. Să se exprime numărul următor din baza 16 în baza 10, folosind formula
(1.6):
iar restul va fi egal cu d0. Prin urmare, d0 este restul împărţirii lui D la r. Se constată apoi că
forma câtului Q este aceeaşi ca a formulei iniţiale. Prin urmare, prin împărţiri succesive la r se
obţin, în ordine, cifrele numărului D, de la dreapta spre stânga, până la ultima cifră.
CÂT REST
29:16= 1 13
1:16= 0 1
PARTE
PARTE ZECIMALĂ
ÎNTREAGĂ
0,85·16= (13)10=(D)16 + 0,6
0,6 ·16= 9 + 0,6
0,6 ·16= 9 + 0,6
Deci: 0,8510=0,D9916
Rezultatul final al conversiei este: 29,8510= 1D,D9916.
CÂT REST
29:8 = 3 5
3:8 = 0 3
Rezultă că 2910=358.
Pentru conversia părţii zecimale, procedeul este asemănător cu cel descris anterior,
se obţine:
PARTE
PARTE ZECIMALĂ
ÎNTREAGĂ
0,85·8 = 6 + 0,8
0,8 ·8 = 6 + 0,4
0,4 ·8 = 3 + 0,2
Deci: 0,8510=0,6638
Rezultatul final al conversiei este: 29,8510= 35,6638.
a b s cout
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
10 + 1 0 1 0 +
8 1 0 0 0
18 1 0 0 1 0
180 + 1 0 1 1 0 1 0 0 +
131 1 0 0 0 0 0 1 1
311 1 0 0 1 1 0 1 1 1
Probă: 1001101112 = 1⋅28 + 0 ⋅27 + 0 ⋅26 + 1 ⋅25 + 1 ⋅24 + 0⋅23 + 1 ⋅22 + 1 ⋅21 + 1 ⋅20
= 256 + 32 + 16 + 4 + 2 + 1 = 31110
Până acum am lucrat numai cu numere pozitive, dar şi numerele negative pot fi
reprezentate în mai multe moduri. În activitatea cotidiană folosim sistemul de reprezentare
prin modul şi semn, prezentat în continuare. Cu toate acestea, în majoritatea calculatoarelor se
utilizează unul dintre sistemele de reprezentare prin complement a unui număr, aşa cum se va
arăta mai târziu.
În sistemul binar, MSB al unui număr serveşte ca bit de semn; un număr este negativ
dacă şi numai dacă are MSB egal cu 1. Echivalentul zecimal al complementului faţă de 2 al
unui număr binar se calculează la fel ca pentru numerele care nu sunt precedate de semn, cu
excepţia faptului că ponderea MSB este de -2n+1. Domeniul căruia îi aparţin reprezentările
numerelor este cuprins între –(2n-1) şi +(2n-1-1).
Complementul faţă de 2 înseamnă complementul faţă de 1 la care se mai adună 1.
Complementul faţă de 1 presupune ca 0 trece în 1 şi 1 trece în 0.
1610 = 0 0 0 1 0 0 0 02
Complement faţă de 2
Compl. faţă de 1 1 1 1 0 1 1 1 1 +
1
1 1 1 1 0 0 0 0
16910 = 1 0 1 0 1 0 0 12
Complement faţă de 2
Compl. faţă de 1 0 1 0 1 0 1 1 0 +
1
0 1 0 1 0 1 1 1
-8910 = 1 0 1 0 0 1 1 12
Complement faţă de 2
Compl. faţă de 1 0 1 0 1 1 0 0 0 +
1
0 1 0 1 1 0 0 1
-12710 = 1 0 0 0 0 0 0 02
Complement faţă de 2
Compl. faţă de 1 0 1 1 1 1 1 1 1 +
1
1 0 0 0 0 0 0 0
Atunci când apare depăşire, ca în toate operaţiile cu complement faţă de 2, bitul acela
se ignoră, folosindu-se doar cei n biţi de ordin inferior ai rezultatului.
10 - 10 + (-8) 1 0 0 0
8 (-8) C.2
2 2 C.1 0 1 1 1 +
1
1 0 0 0
1 0 1 0 +
1 0 0 0
se neglijează 1 0 0 1 0
54 - 54 + (-32) 1 0 0 0 0 0
32 (-32) C.2
22 22 C.1 0 1 1 1 1 1 +
1
1 0 0 0 0 0
1 1 0 1 1 0 +
1 0 0 0 0 0
se neglijează 1 0 1 0 1 1 0
54 - 54 + (-72) 0 1 0 0 1 0 0 0
72 (-72) C.2
-18 -18 C.1 1 0 1 1 0 1 1 1 +
1
1 0 1 1 1 0 0 0
0 0 1 1 0 1 1 0 +
1 0 1 1 1 0 0 0
1 1 1 0 1 1 1 0
12 × 1 1 0 0 ×
14 1 1 1 0
168 0 0 0 0
1 1 0 0
1 1 0 0
1 1 0 0
1 0 1 0 1 0 0 0
Probă:
101010002 = 1 ⋅27 + 0⋅26 + 1 ⋅25 +0 ⋅24 + 1⋅23 + 0 ⋅22 + 0 ⋅21 + 0 ⋅20 =
= 128 + 32 + 8 = 16810
121 × 1 1 1 1 0 0 1 ×
13 1 1 0 1
1573 1 1 1 1 0 0 1
0 0 0 0 0 0 0
1 1 1 1 0 0 1
1 1 1 1 0 0 1
1 1 0 0 0 1 0 0 1 0 1