Documente Academic
Documente Profesional
Documente Cultură
c) Octal (b=8),
Un sistem de numeraţie foloseşte pentru reprezentarea numerelor un set - setul de simboluri este {0, 1, 2, 3, 4, 5, 6, 7};
de b simboluri: - valoarea numărului 20768 în zecimal este:
{0, 1, 2, 3, … , b-1} 20768 = 2•83 + 0•82 + 7•81 + 6•80= 2•512 + 56 + 6= 108610
Dacă b>10 trebuie adăugate noi simboluri în afara cifrelor (litere etc.).
Un număr întreg pozitiv se scrie, în baza b, folosind simbolurile dk: d) Hexazecimal (b=16),
m=(d k d k -1 ...d 3d 2 d1d 0 ) b - setul de simboluri este {0, 1, 2, …, 9, A, B, C, D, E, F};
ceea ce este echivalent cu - reprezentarea numărului B3F16 în zecimal este:
m = d k b k + dk -1 bk -1 + ... + d 3 b3 + d2 b 2 + d1b1 + d0 b0 B3F16=11•162 + 3•161 + 15•160= 11•256 + 48 + 15= 287910
Similar pot fi reprezentate numerele raţionale folosind i+1 simboluri
pentru partea întreagă şi f simboluri pentru partea fracţionară:
2.2 CONVERSIA ÎNTRE SISTEMELE DE NUMERAŢIE
r = d i bi + d i-1bi-1 + ... + d1b1 + d 0 b 0 + d -1b -1 + ... + d − f b − f
Exemple de sisteme de numeraţie: zecimal, binar, octal, hexazecimal. Conversia unui număr reprezentat într-o bază b în zecimal se face în
a) Zecimal (b=10), mod direct aşa cum s-a arătat în exemplele de mai sus.
- setul de simboluri este {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; Conversia din binar în hexazecimal se realizează grupând cifrele binare
- reprezentarea numărului întreg 493 în baza 10: în grupuri de câte 4 biţi, identificând simbolul hexazecimal corespunzător:
2 1 0
49310 = 4•10 + 9•10 + 3•10 = 400 + 90 + 3 1101101,10011012 = 0110 1101,1001 10102 = 6D,9A16
Capitolul 2 – Aritmetica numerelor 147 148 Aplicaţii ale procesoarelor de semnal în comunicaţii
Conversia din zecimal în baza b se face separat pentru partea întreagă şi - partea fracţionară:
pentru partea fracţionară: 0,65 × 2 = 1,3 1 MSB
- Pentru partea întreagă observăm că aceasta se mai poate scrie: 0,3 × 2 = 0,6 0
0,6 × 2 = 1,2 1
i= (((( d b + d
k k -1 ) b + ... + d3 ) b + d2 ) b + d1 ) b + d0 0,2 × 2 = 0,4 0
0,4 × 2 = 0,8 0
Se împarte i la b şi se obţine restul d0 şi un cât care are o 0,8 × 2 = 1,6 1
reprezentare similară cu i (pe mai puţini digiţi). Se repetă împărţirea 0,6 × 2 = 1,2 1
0,2 × 2 = 0,4 0 ...
câtului la b până se ajunge la 0. Restul obţinut la fiecare împărţire
Rezultă că numărul 0,65 nu poate fi reprezentat în binar cu un număr finit de
reprezintă simbolul dk al reprezentării în baza b a numărului întreg.
biţi.
- Pentru partea fracţionară:
23,6510 = 10111,10100110…2
f = d −1 b−1 + d −2 b −2 + d −3 b −3 + ... + d − k b − k + ...
Reprezentarea numerelor, în cazul procesoarelor, este limitată la un
Se înmulţeşte f cu b şi se păstrează partea întreagă a membrului număr finit de biţi. Gama de lucru este astfel limitată. Considerând
drept, respectiv d–1. reprezentarea unui număr binar pe N biţi vom avea un domeniu de 2N valori
b ⋅ f = d −1 + d −2 b −1 + d −3 b −2 + ... + d − k b − k +1 + ... zecimale care pot fi reprezentate.
b ( b ⋅ f − d −1 ) =d −2 + d −3 b −1 + ... + d − k b − k + 2 + ...
Se continuă înmulţind partea fracţionară a rezultatului la b până se 2.3 REPREZENTAREA BINARĂ A NUMERELOR NEGATIVE
ajunge la 0. Reprezentarea în bază b a părţii fracţionare se face
luând în ordine inversă părţile întregi obţinute.
Pentru reprezentarea numerelor negative, bitul din stânga reprezentării
binare este folosit ca bit de semn.
EXEMPLU: Reprezentarea în baza 2 a numărului 23,65:
Astfel avem bitul de semn:
- partea întreagă:
- 0 pentru numere pozitive (+);
23 : 2 = 11 1 LSB
- 1 pentru numere negative (–).
11 : 2 = 5 1
5:2= 2 1 Restul de N–1 biţi sunt folosiţi pentru reprezentarea valorii.
2:2= 1 0
1:2= 0 1 MSB
2N–2 ... 20
2310 = 101112 s m
1 bit Å N–1 biţi Æ
Figura 2-1 Reprezentarea numerelor întregi cu semn
Capitolul 2 – Aritmetica numerelor 149 150 Aplicaţii ale procesoarelor de semnal în comunicaţii
O metodă mai rapidă pentru obţinerea complementului faţă de 2 este: 2.4 ARITMETICA NUMERELOR BINARE ÎN VIRGULĂ FIXĂ
a) Se complementează fiecare bit;
b) Se adună 1. În cele mai multe cazuri, procesoarele de semnal folosesc reprezentarea
în virgulă fixă pentru o reducere a costului şi a complexităţii şi pentru o viteză
EXEMPLU: de prelucrare mai mare. Considerând reprezentarea unui cuvânt în memorie
Pentru N=6 biţi, pe N biţi vom avea un domeniu de 2N valori zecimale care pot fi reprezentate.
- pentru 13 = 0011012 Reprezentarea numerelor cu semn se face în complement faţă de 2.
se complementează biţii: 1100102
2.4.1 Aritmetica numerelor întregi în virgulă fixă
se adună 1: 1100112 = –13
- pentru –13 = 1100112 Pentru reprezentarea numerelor întregi în virgulă fixă în complement
se complementează biţii: 0011002 faţă de doi cuvântul binar este interpretat ca având virgula la dreapta celui
se adună 1: 0011012 = +13 mai puţin important bit (LSB). Cel mai important bit (MSB) este bit de semn.
2N–1 2N–2 ... 20
s i .
Bitul din stânga rămâne în continuare bit de semn. Există o singură Å N biţi Æ
reprezentare a lui 0. Figura 2-2 Reprezentarea numerelor întregi în virgulă fixă
Domeniul de reprezentare a numerelor întregi în complement faţă de 2:
Domeniul în care pot fi reprezentate numerele întregi în complement
- 2N–1 valori pozitive de la 0 la 2N–1–1.
faţă de doi:
- 2N–1 valori negative de la –2N–1 la –1.
−2 N −1 , ..., −1,0,...,2 N −1 − 1
Avantajul reprezentării în complement faţă de 2 este că adunând un
EXEMPLU:
număr cu complementul său faţă de 2 rezultatul este 0 (ignorând depăşirea)
Reprezentarea numerelor întregi cu semn pentru N=4 biţi:
ceea ce nu este valabil în cazul celorlalte reprezentări.
EXEMPLU: Zecimal Binar Zecimal Binar
0 0000 -8 1000
Pentru N=6 biţi, 1 0001 -7 1001
13+ 0011012 2 0010 -6 1010
–13 1100112 3 0011 -5 1011
=0 10000002 4 0100 -4 1100
5 0101 -3 1101
6 0110 -2 1110
7 0111 -1 1111
Capitolul 2 – Aritmetica numerelor 153 154 Aplicaţii ale procesoarelor de semnal în comunicaţii
Scăderea numerelor întregi cu semn Înmulţirea numerelor întregi fără semn în virgulă fixă necesită o
dublare a preciziei reprezentării rezultatului în caz contrar apar depăşiri.
Operaţia de scădere este echivalentă cu adunarea cu complementul faţă Înmulţirea în binar se face la fel ca în zecimal doar că sunt numai două cifre
de doi al descăzutului (scăderea unui număr e echivalentă cu adunarea (0 şi 1).
negativului numărului).
Capitolul 2 – Aritmetica numerelor 155 156 Aplicaţii ale procesoarelor de semnal în comunicaţii
EXEMPLU: EXEMPLU:
Pentru N=4 biţi, rezultatul va fi reprezentat pe cel mult 8 biţi. –3 11111101
× 5×00000101
6 0110
11111101
×5 ×0101
__ 11111101 +
0110
–15 1111110001
0000
Având în vedere că reprezentarea pe 8 biţi a lui +15 este: 00001111
0110
__ 0000 + rezultatul înmulţirii cu semn este corect.
30 0011110
O altă metodă de înmulţire a două numere cu semn este de a înmulţi
numerele în valoare absolută (înmulţire fără semn) apoi se determină semnul
În exemplul de mai sus au fost suficienţi 7 biţi dar dacă se înmulţesc
rezultatului din semnele celor doi operanzi şi se reprezintă rezultatul (în
numere mai mari se poate avea transport şi la al 8-lea bit.
complement faţă de 2 dacă e negativ).
Înmulţirea poate fi privită şi ca o succesiune de deplasări la stânga şi
adunări ale înmulţitorului.
Împărţirea numerelor întregi
EXEMPLU:
În exemplul de mai sus numărul 5 poate fi scris:
Împărţirea numerelor întregi se face prin scăderi repetate ale
5 = 20 + 2 2
împărţitorului din deîmpărţit la fel ca împărţirea în zecimal.
Deci înmulţirea poate fi calculată ca o sumă:
6 × 5 = 6 × ( 20 + 2 2 ) = 6 × 1 + 6 × 2 2
EXEMPLU:
unde se face o deplasare la stânga a lui 6 cu 2 biţi. 15| 3 1111 11
6× 1 0110 5 –11 101
6× 22 0110 + 0011
0011110 –11
00
Înmulţirea numerelor întregi cu semn trebuie să ia în considerare şi
extensia de semn. Astfel, pentru o reprezentare a rezultatului pe 2N biţi
trebuie ca cei doi operanzi cu semn reprezentaţi fiecare pe N biţi să fie extinşi
la 2N biţi înaintea înmulţirii. Pentru rezultatul înmulţirii vor fi consideraţi cei
mai puţin semnificativi 2N biţi.
Capitolul 2 – Aritmetica numerelor 157 158 Aplicaţii ale procesoarelor de semnal în comunicaţii
2.4.2 Aritmetica numerelor fracţionare în virgulă fixă O metodă rapidă de conversie a numerelor fracţionare binare
Un număr fracţionar f este un număr al cărui modul satisface Pentru o conversie mai rapidă a unui număr fracţionar din reprezentarea
inegalitatea: binară în zecimal se observă că f reprezentat în binar pe N=B+1 biţi este
0.0 ≤ | f | < 1.0 multiplu întreg de 2–B.
Exemple de numere fracţionare sunt: 0.15 şi –0.67. Fie i multiplul întreg corespunzător. Avem:
În ultimul exemplu apare fenomenul de trunchiere deoarece numărul În cazul înmulţirii numerelor fracţionare apar unele dificultăţi.
fracţionar 0,65 nu poate fi reprezentat exact pe 8 biţi. Numărul 010100112 Rezultatul înmulţirii în binar a două numere reprezentate cu B biţi pentru
este în zecimal 0.6484375. partea fracţionară + 1 bit de semn va trebui reprezentat pe 2B biţi + 1 bit de
semn. Aceasta este echivalent cu o dublare a zecimalelor pentru numerele
Totuşi, folosind metoda de înmulţire a numerelor binare cu semn, trunchierea celor mai puţini semnificativi biţi apărând o eroare de trunchiere
înmulţind două numere cu semn reprezentate pe N=B+1 biţi rezultă 2N biţi. la ultimele zecimale ale numărului fracţionar. În cazul înmulţirii a două
Rezultatul va avea cei mai puţin semnificativi 2B biţi corespunzând părţii numere întregi rezultatul nu poate fi trunchiat în mod direct.
fracţionare iar cei mai semnificativi 2 biţi corespund părţii din stânga virgulei
(adică doi biţi de semn). Extinderea preciziei de reprezentare a numerelor fracţionare
×
Å N biţi Æ În urma operaţiilor aritmetice cu numere fracţionare pot să apară două
fenomene: rezultatul înmulţirii trebuie stocat în dublă precizie şi rezultatul
Å 2N biţi Æ
s s . f adunării poate avea depăşiri spre partea întreagă. Pentru aceasta, în
2 biţi Å 2B biţi Æ procesoarele digitale de semnal există registre (acumulator) folosite pentru
Figura 2-6 Reprezentarea rezultatului folosind înmulţirea numerelor întregi
stocarea în precizie extinsă a rezultatelor intermediare ale unor operaţii
aritmetice.
Rezultatul binar astfel obţinut trebuie deplasat la stânga cu un bit pentru
20.2–1 ... 2–(N–1)
a corespunde reprezentării unui număr fracţionar pe 2N biţi. s . fracţionar
s . f 0
2M 21 20.2–1 ... 2–(N–1) 2–N ... 2–(2N–1)
1bit Å 2B biţi Æ 1bit
s întreg . fracţionar fracţionar
Figura 2-7 Reprezentarea rezultatului înmulţirii în format fracţionar Å M biţi Æ Å N biţi ÆÅ N biţi Æ
Figura 2-8 Extinderea preciziei de reprezentare a numerelor fracţionare
Rezultă că nu se pot folosi aceleaşi circuite de înmulţire şi pentru
Extinderea preciziei părţii fracţionare se face completând cu 0 la
numerele întregi cu semn şi pentru numerele fracţionare.
dreapta LSB.
EXEMPLU:
Extinderea preciziei părţii întregi se face prin extensie de semn la
0,5 0100
× 0,5 × 0100 stânga MSB.
0000 EXEMPLU:
0000
0100 + Să se reprezinte în precizie dublă pentru partea fracţionară şi cu
____ 00010000 extensie de 4 biţi pentru partea întreagă numerele fracţionare reprezentate în
0,25 0,0100000
precizie simplă pe 8 biţi:
În urma înmulţirii, precizia de reprezentare a rezultatului trebuie 0,5 01000000 -0,25 11100000
dublată. Dacă se doreşte stocarea rezultatului în precizie simplă se poate face 0000 01000000 00000000 1111 11100000 00000000
Capitolul 2 – Aritmetica numerelor 163 164 Aplicaţii ale procesoarelor de semnal în comunicaţii
EXEMPLU:
Dacă
Figura 2-9 Formatul general în virgula mobilă
mantisa = 01.000000000012 şi e=1110
atunci punctul binar este mutat 11 locaţii la dreapta, obţinându-se numărul:
Ecuaţia generală pentru calculul valorii unui număr în virgulă mobilă
01000000000012
este:
egal cu 2049 în zecimal.
X = ss . f 2 × 2e
unde: s este bitul de semn, s este inversul valorii bitului de semn, f este
‘C3x suportă patru formate în virgulă mobilă:
valoarea binară a câmpului reprezentând partea fracţionară şi e este
1. Imediat scurt, constând într-un exponent pe 4 biţi (în complement
echivalentul zecimal al câmpului exponent.
faţă de 2), un bit de semn şi o parte fracţionara pe 11 biţi (sau echivalent un
Mantisa reprezintă un număr în complement faţă 2 normalizat.
câmp de 12 biţi reprezentând mantisa în complement fată de 2).
Dacă s=0, atunci primii doi biţi ai mantisei sunt 01.
Dacă s=1, atunci primii doi biţi ai mantisei sunt 10.
Dacă bitul de semn este egal cu 0, mantisa devine 01.f2, unde f este
reprezentarea binară a câmpului parte fracţionară.
Dacă bitul de semn este egal cu 1, mantisa devine egala cu 10.f2, unde f
Figura 2-10 Formatul imediat scurt în virgula mobilă
este reprezentarea binara a câmpului parte fracţionară.
Capitolul 2 – Aritmetica numerelor 165 166 Aplicaţii ale procesoarelor de semnal în comunicaţii
Operaţiile sunt realizate cu un punct binar între biţii 11 şi 10. Numărul ⎧01.f × 2e daca s = 0
⎪
în format virgula mobila imediat scurt este dat de formula următoare: x = ⎨ 10.f × 2e daca s =1
⎪ 0 daca e=-128
⎧01.f × 2e daca s=0 ⎩
⎪
x = ⎨ 10.f × 2e daca s =1 Pentru a reprezenta 0 folosim următoarele valori rezervate:
⎪ 0 daca e=-8
⎩ e =–128, s =0, f =0
În formatul scurt imediat în virgulă mobilă pentru a reprezenta 0 Următoarele exemple ilustrează gama de variaţie şi precizia formatului
folosim următoarele valori rezervate: în virgulă mobilă normal scurt pe 16 Biţi, pentru date externe:
e=–8, s=0, f =0 • Cel mai pozitiv: x = (2 – 2 –8 ) × 2 127 = 3.3961775 × 1038
Următoarele exemple ilustrează gama de variaţie şi precizia formatului • Cel mai puţin pozitiv: x = 1 × 2–127 = 5.8774717541 × 10–39
scurt imediat în virgulă mobilă: • Cel mai puţin negativ: x = (–1–2–8 ) × 2–127 = –5.9004306 × 10–39
• Cel mai pozitiv: x = (2 – 2 –11 ) × 2 7 = 2.5594 × 102 • Cel mai negativ: x = –2 × 2127 = –3.4028236 × 1038
–7 –3
• Cel mai puţin pozitiv: x = 1 × 2 = 7.8125 × 10
• Cel mai puţin negativ: x = (–1–2–11 ) × 2–7 = –7.8163 × 10–3 3. Precizie simplă cu un câmp de 8 biţi pentru exponent (e), un bit de
7 2
• Cel mai negativ: x = –2 × 2 = –2.5600 × 10 semn şi o parte fracţionara de 23 de biţi (mantisa de 24 de biţi in complement
binar - man), deci pe 32 biţi.
2. Normal scurt, pe 16 biţi, pentru date externe, în complement faţă de
2, format din un câmp de exponent de 8 biţi, un bit de semn şi o parte
fracţionară pe 7 biţi (Figura 2-11).
Trebuie folosite următoarele valori rezervate pentru a reprezenta 0: • Cel mai puţin negativ: x=(-1-2-31) × 2-127=-5.8774717569 × 10-39
e=-128, s=0, f=0 • Cel mai negativ: x=-2× 2127=-3.4028236691 × 1038
Gama de variaţie şi precizia formatului în virgulă mobilă în precizie
simplă: Determinarea echivalentului zecimal a formatului în virgulă mobilă
Cel mai pozitiv: x = (2 – 2 –23 ) × 2 127 = 3.4028234 × 1038
Cel mai puţin pozitiv: x = 1 × 2–127 = 5.8774717 × 10–39 Pentru a converti numărul ‘C3x în virgulă mobilă la echivalentul său
–23 –127 –39
Cel mai puţin negativ: x = (–1–2 )×2 = –5.8774724 × 10 zecimal, trebuie respectaţi următorii paşi:
127 38
Cel mai negativ: x = –2 × 2 = –3.4028236 × 10 Pas 1: Se converteşte câmpul exponent la reprezentarea zecimală.
Câmpul exponent este un număr în complementul faţă de 2.
4. Precizie extinsă constând într-un exponent pe 8 biţi, un bit de semn Pas 2: Se converteşte câmpul mantisa la reprezentarea zecimala. Dacă
şi o parte fracţionara pe 31 de biţi (deci mantisa pe de 32 de biţi). Operaţiile bitul de semn este şters (s=0), se formează mantisa scriind 01 şi adăugând biţii
sunt realizate cu punct binar implicit între biţii 31 si 30. în câmpul fracţie după punctul binar.
EXEMPLU:
Dacă
f=101000000002
Figura 2-13 Formatul virgulă mobilă în precizie extinsă
atunci
man=01.101000000002.
Numărul in virgula mobila x este dat de următoarele relaţii:
⎧01.f × 2e daca s = 0 Dacă bitul de semn este setat (s=1), se formează mantisa prin scrierea
⎪
x = ⎨ 10.f × 2e daca s =1
⎪ lui 10 şi adăugând biţii în câmpul fracţie după punctul binar.
⎩ 0 daca e=-128
EXEMPLU:
Daca e=210 şi man=01.110000000002, atunci mantisa devine
0111.0000000002, care este echivalent cu 7 în baza zece.
EXEMPLU:
Dacă e=2-10 şi man=01.100000000002, atunci mantisa deplasată devine
0.01100000000002, care este echivalentă cu 3/8 în bază zece.
EXEMPLU:
Figura 2-14 Conversii în virgulă mobilă
0 2 4 0 0 0 0 0 Valoarea hexazecimală
0000 0010 0100 0000 0000 0000 0000 0000 Valoarea binară
Exponentul = 0000 00102 = 2; Semn = 0; Fracţie = .100002;
EXEMPLU:
Valoare = 01.12 × 22 = 01102. = 6
F B 4 0 0 0 0 0 Valoarea hexazecimală
1111 1011 0100 0000 0000 0000 0000 0000 Valoarea binară
EXEMPLU:
Exponent = 1111 10112 = –5; Semn = 0; Fracţie = .100002
0 1 C 0 0 0 0 0 Valoarea hexazecimală
Valoare = 01.12 × 2–5 = .0000112 = 3/64
0000 0001 1100 0000 0000 0000 0000 0000 Valoarea binară
Exponentul = 0000 00012 = 1; Semn = 1; Fracţie = .100002;
Formatul ‘C3x în virgulă mobilă nu este compatibil cu standardul IEEE
Valoare = 10.12 × 21 = 1012=–3
754. Formatul IEEE pentru virgula mobilă foloseşte notaţie semn-
magnitudine pentru mantisă. Într-un cuvânt de 32 biţi reprezentând un număr
Operaţiile în virgulă mobilă presupun şi conversia (automată în
în virgulă mobilă, primul bit este bit de semn.
hardware) dintr-un format în altul (Figura 2-14).