1. 2-1 Reprezentarea datelor
Arhitectura calculatoarelor
Reprezentarea datelor
Con ţ inuturi
1. Introducere
2. Reprezentarea numerelor î n virgul ă fix ă
3. Reprezentarea numerelor î n virgul ă mobil ă
4. Studiu de caz: E ş ecul rachetelor Patriot datorat
pierderii preciziei
5. Coduri de caractere
Arhitectura Sistemelor de Calcul
2. 2-2 Reprezentarea datelor
Numere cu virgul ă fix ă
• Folosind doar dou ă cifre pentru precizia numerelor cu
semn î n baza 10, intervalul de valori ce pot fi reprezentate
este
[-99, +99] iar precizia (distan ţ a dintre dou ă numere
succesive) este 1.
• Eroarea maxim ă , adic ă diferen ţ a dintre valoarea unui
numă r real ş i cel mai apropiat î ntreg este jum ă tatea din
precizie. Pentru cazul nostru, eroarea este ½ x 1 = 0.5.
• Dac ă alegem a = 70, b = 40 ş i c = -30, atunci a + (b + c)
= 80 (ceea ce este corect) dar (a + b) + c = ?
R ă spuns: -20 ceea ce nu este corect . Problema este c ă (a
+ b) este +110, ceea ce dep ăş e ş te +99, a ş a c ă se re ţ in
doar cele dou ă cifre din parte dreapt ă (+10) pentru
rezultatul intermediar. Aceasta este o problem ă de care
trebuie s ă ţ inem cont câ folosim o reprezentare finit ă
Arhitectura Sistemelor de Calcul
nd
3. 2-3 Reprezentarea datelor
Cod cu ponderi ale pozi ţ iei
• Baza unui sistem de numera ţ ie define ş te intervalul de
valori posibile pentru cifre: 0 – 9 pentru baza 10 ; 0,1
pentru baza 2.
• Formula general ă pentru determinarea valorii zecimale a
unui num ă r este:
Exemplu:
541.25 10 = 5 × 10 2 + 4 × 10 1 + 1 × 10 0 + 2 × 10 -1 + 5 × 10 -2
= (500) 10 + (40) 10 + (1) 10 + (2/10) 10 + (5/100) 10
Arhitectura Sistemelor de Calcul
4. 2-4 Reprezentarea datelor
Conversii de baze cu metoda
restului
•Exemplu: Conversia lui 23.375 10 î n baza 2. Prima dat ă se
converte ş te partea î ntreag ă:
Arhitectura Sistemelor de Calcul
5. 2-5 Reprezentarea datelor
Conversii de baze cu metoda
î nmulţ irii
• Conversia p ă r ţ ii frac ţ ionare :
•Rezultatul, 23.375 10 = 10111.011 2
Arhitectura Sistemelor de Calcul
6. 2-6 Reprezentarea datelor
Fracţ ii î n baza 2 periodice
• Nu putem converti î ntotdeauna o frac ţ ie neperiodic ă din
baza 10 î ntr-o frac ţ ie periodic ă î n baza 2 (sau alt ă baz ă ) :
Arhitectura Sistemelor de Calcul
7. 2-7 Reprezentarea datelor
Bazele de numera ţ ie 2, 8, 10, 16
• Exerci ţ iu: Scrie ţ i o coloan ă pentru baza 3 . Converti ţ i 14 10
î n baza 3. Rezultatul trebuie s ă fie 112 3
Arhitectura Sistemelor de Calcul
8. 2-8 Reprezentarea datelor
Conversii de baze
• Conversia î ntre baze care sunt puteri ale lui doi se poate
face foarte simplu:
1011 2 = (10 2 )(11 2 ) = 23 4
23 4 = (2 4 )(3 4 ) = (10 2 )(11 2 ) = 1011 2
101010 2 = (101 2 )(010 2 ) = 52 8
01101101 2 = (0110 2 )(1101 2 ) = 6D 16
• De câ i bi ţ i e nevoie pentru reprezentarea unei cifre î n
ţ
bazele 2, 4, 8, 16…?
Î n baza 2 pentru care 2 = 2 1 , exponentul este 1 a ş a c ă se
folose ş te un singur bit . Î n baza 4 pentru care 4 = 2 2 ,
exponentul este 2, a ş a c ă se folosesc 2 bi ţ i pentru
Arhitectura Sistemelor de Calcul oric ă rui num ă r din baza 4, î n baza 8 se
reprezentarea
9. 2-9 Reprezentarea datelor
Adunare binară
Arhitectura Sistemelor de Calcul
10. 2- Reprezentarea datelor
10
Numere cu semn
• Dac ă reprezent ă m numere pe 8 bi ţ i , exist ă 2 8 = 256
secven ţ e distincte de bi ţ i de lungime 8 . Aceste secven ţ e de
biţ i pot fi interpretate toate ca fiind numere pozitive (0 -
255) sau unele secven ţ e le putem interpreta ca fiind
numere negative iar altele pozitive. Jum ă tate le putem
considera pozitive iar cealalt ă jum ă tate negative.
• Modalit ăţ i de reprezentare :
Magnitudine cu semn
Complement fa ţă de unu
Complement fa ţă de doi
Exces
Arhitectura Sistemelor de Calcul
11. 2- Reprezentarea datelor
11
Magnitudine cu semn
• Bitul cel mai semnificativ este bit de semn (0 = pozitiv, 1 =
negativ) iar restul bi ţ ilor reprezint ă magnitudinea .
• Exemplu:
+2510 = 000110012
-2510 = 100110012
• Exist ă dou ă reprezent ă ri pentru zero: (care sunt?)
+0 = 00000000 2 , -0 = 10000000 2 .
• Cel mai mare num ă r este +127, cel mai mic num ă r este
-127 10 , folosind o reprezentare pe 8 bi ţ i .
Arhitectura Sistemelor de Calcul
12. 2- Reprezentarea datelor
Complement fa ţă de unu
12
• Bitul cel mai semnificativ este bit de semn (0 = pozitiv, 1 =
negativ). Num ă rul negativ se ob ţ ine prin sc ă derea fiec ă rui
bit din 2 (complementarea fiec ă rui bit din 0 se transform ă
î n 1 ş i din 1 î n 0). Aceast ă opera ţ ie de complementare
fa ţă de 1 func ţ ioneaz ă atâ pentru transformarea numerelor
t
negative î n numere pozitive câ ş i invers.
t
• Exemplu:
+2510 = 000110012
-2510 = 111001102
• Ş i aici exist ă dou ă reprezent ă ri pentru zero : (care sunt ?)
+0 = 00000000 2 , -0 = 11111111 2 .
• Cel mai mare num ă r este +127 10 , cel mai mic este -127 10 , î n
reprezentarea pe 8 bi ţ i .
Arhitectura Sistemelor de Calcul
13. 2- Reprezentarea datelor
Complement fa ţă de doi
13
• Bitul cel mai semnificativ este bit de semn (0 = pozitiv, 1 =
negativ). Num ă rul negativ se ob ţ ine prin adunarea valorii 1
la complementul fa ţă de unu al num ă rului negativ.
Aceast ă opera ţ ie de complementare fa ţă de 2 func ţ ioneaz ă
atâ pentru transformarea numerelor negative î n numere
t
pozitive câ ş i invers.
t
• Exemplu ( -25 10 = 11100110 2 î n complement fa ţă de unu:
+2510 = 000110012
-2510 = 111001112
• Exist ă o singur ă reprezentare pentru zero: +0 = 00000000 2 ,
-0 = 00000000 2 .
• Cel mai mare num ă r +127 10 , cel mai mic -128 10 , folosind o
reprezentare pe 8 bi ţ i.
Arhitectura Sistemelor de Calcul
14. 2- Reprezentarea datelor
14
Reprezentarea î n exces
• Cel mai semnificativ bit este bit de semn (de obicei 1 =
pozitiv, 0 = negativ). Reprezentarea pozitiv ă ş i negativ ă a
unui num ă r se ob ţ ine prin adunarea unei valori la
reprezentarea î n complement fa ţă de doi. Aceasta
func ţ ioneaz ă î n ambele direc ţ ii pozitiv-negativ, negativ-
pozitiv. Efectul este c ă pentru numerele mici se folose ş te
un num ă r mai mic de bi ţ i, ceea ce simplific ă compararea
numerelor reale.
• Exemplu (exces 128 “adun ă ” 128 la complementul fa ţă de
doi, ignorâ “transport out” dac ă exist ă la cel mai
nd
semnificativ bit) :
+1210 = 100011002
-1210 = 011101002
• O singur ă reprezentare pentru zero: +0 = 10000000 2 , -0 =
10000000 2 .
Arhitectura Sistemelor de Calcul
15. 2- Reprezentarea datelor
Reprezent ă ri BCD î n complement
15
fa ţă de 9 ş i 10
• Fiecare cifr ă codificat ă binar (BCD) este format ă din 4 bi ţ i.
• Exemplu: Reprezentarea lui +079 10 î n BCD: 0000 0111
1001
• Exemplu: Reprezentarea lui -079 10 î n BCD: 1001 0010
0001. Se ob ţ ine prin sc ă derea din 9 a fiec ă rei cifre a lui
079 pentru a ob ţ ine complementul fa ţă de 9, 999-079 = 920.
Adunâ 1 ob ţ inem complementul fa ţă de 10: 920+1=921.
nd
Convertirea fiec ă rei cifre a num ă rului din baza 10 î n BCD
Arhitectura Sistemelor de Calcul
ob ţ inem: 1001 0010 0001.
16. 2- Reprezentarea datelor
16
Reprezent ă ri pe 3 bi ţ i a unor î ntregi cu
semn
Arhitectura Sistemelor de Calcul
17. Numere î n baza zece î n virgul ă
2- Reprezentarea datelor
17
mobilă
• Numerele î n virgul ă mobil ă permit reprezentarea unor
numere foarte mari ş i a unor numere foarte mici folosind un
numă r mic de cifre, f ă câ compromisuri la precizie.
nd
Precizia este determinat ă de num ă rul de cifre din frac ţ ie
(significand, mantis ă ) care are atâ parte î ntreag ă câ ş i
t t
parte frac ţ ionar ă . Plaja de valori este determinat ă de
numă rul de cifre rezervate exponentului .
• Exemplu (+6.023 × 10 23 ):
Arhitectura Sistemelor de Calcul
18. 2- Reprezentarea datelor
18
Normalizare
• Numă rul 254 din baza 10 poate fi reprezentat sub forma î n
virgul ă flotant ă (mobil ă ) ca 254 × 10 0 , sau î n mod
echivalent ca:
25.4 × 10 1 , sau
2.54 × 10 2 , sau
.254 × 10 3 , sau
.0254 × 10 4 , sau ….
ceea ce creeaz ă probleme la efectuarea compara ţ iilor (fiind
atâ de multe forme pentru acela ş i num ă r).
t
• Numerele î n virgul ă mobil ă sunt de obicei normalizate,
adic ă pozi ţ ia punctului zecimal este î ntotdeauna fixat ă
pentru un anumit num ă r .
• De obicei, reprezentarea normalizat ă plaseaz ă punctul
Arhitectura Sistemelor deîCalcul stâ
zecimal n nga celei mai semnificative cifre a frac ţ iei , de
3
19. Exemple de numere î n virgul ă
2- Reprezentarea datelor
19
•
mobilă ă de virgulă mobilă
Reprezentarea lui .254 ×10 sub form
3
normalizat î n baza 8 cu bit de semn, urmat de o
reprezentare î n exces 4 cu 3 bi ţ i , urmat de 4 cifre î n baza
8.
• Pasul #1: Se converte ş te î n baza ţ int ă
.254 × 10 3 = 254 10 . Folosind metoda restului, ob ţ inem
254 10 =376×8 0 :
254/8 = 31 R 6
31/8 = 3 R 7
3/8 = 0 R 3
• Pasul #2: Normalizare: 376 × 8 0 = .376 × 8 3 .
• Pasul #3: Se completeaz ă bitul de semn pozitiv 0.
Exponentul 3+4=7 (exces 4) , ş i partea frac ţ ionar ă de 4 cifre
= .3760:
Arhitectura Sistemelor de Calcul
20. 2- Reprezentarea datelor
Eroare, interval ş i precizie
20
• Î n exemplul precedent, baza era b = 8, numă rul de cifre
semnificative î n frac ţ ie s = 4, cea mai mare valoare pentru
exponent M = 3, cea mai mic ă valoare pentru exponent m =
-4.
• Î n exemplul precedent, nu exist ă o reprezentare explicit ă
pentru 0, dar trebuie s ă existe rezervat ă o secven ţă de bi ţ i
special ă pentru 0 altfel nu s-ar putea reprezenta valoare 0
fă ră î nc ă lcarea regulii normaliz ă rii. Vom considera
secven ţ a
0 000 000 000 000 000 ca fiind reprezentarea pentru 0.
• Folosind b, s, M ş i m, vom caracteriza reprezentarea î n
virgul ă mobil ă î n termeni de: cel mai mare num ă r pozitiv
reprezentabil, cel mai mic num ă r pozitiv ş i diferit de zero ce
se poate reprezenta, cea mai mic ă diferen ţă dintre dou ă
numere succesive, cea mai mare diferen ţă dintre dou ă
numere succesive ş i num ă rul total de numere ce se pot
reprezenta.
Arhitectura Sistemelor de Calcul
21. 2- Reprezentarea datelor
Eroare, interval ş i precizie (cont.)
21
• Cel mai mare num ă r reprezentabil : b M × (1 - b-s) = 8 3 × (1 -
8 -4 )
• Cel mai mic num ă r reprezentabil : b m × b -1 = 8 -4 - 1 = 8 -5
• Cea mai mare diferenţă: bM × b -s = 8 3 - 4 = 8 -1
• Cea mai mic ă diferen ţă: b m × b-s = 8 -4 - 4 = 8 -8
Arhitectura Sistemelor de Calcul
22. 2- Reprezentarea datelor
Eroare, interval ş i precizie (cont.)
22
Numă rul Prima cifr ă Restul
Bit de de a fracţ iei cifrelor
semn exponen ţ i frac ţ iei
• Numă rul de numere reprezentabile : Sunt 5 componente: (A)
bit-ul de semn; pentru fiecare num ă r, cu excep ţ ia lui zero,
exist ă atâ un num ă r pozitiv câ ş i unul negativ ; (B) (M - m) +
t t
1 exponen ţ i ; (C) b - 1 valori pentru prima cifră (0 nu este
permis ca prim ă cifr ă normalizat ă); (D) bs-1 valori pentru
fiecare din cele s-1 cifre ră mase , plus (E) o reprezentare
special ă pentru zero . Pentru acest exemplu, cele 5
componente dau: 2 × ((3 - 4) + 1) × (8 - 1) × 8 4-1 + 1 numere
ce pot fi reprezentate . Acest num ă r nu trebuie s ă fie mai
mare decâ num ă rul de secven ţ e distincte de bi ţ i ce pot fi
t
generate, adic ă 2 16 .
Arhitectura Sistemelor de Calcul
23. Exemple de formate î n virgul ă
2- Reprezentarea datelor
23
mobilă
• Cel mai mic num ă r este 1/8
• Cel mai mare num ă r este 7/4
• Cea mai mic ă diferen ţă este 1/32
• Cea mai mare diferen ţă este 1/4
• Num ă rul total de numere reprezentabile este 33.
Arhitectura Sistemelor de Calcul
24. 2-
24
Diferen ţ a dintre dou ă numere Reprezentarea datelor
depinde de dimensiunea
exponentului
• Eroarea relativ ă este aproximativ aceea ş i pentru toate
numerele.
• Dac ă consider ă m raportul dintre o distan ţă mare dintre
două numere ş i un num ă r mare respectiv raportul dintre o
distan ţă mic ă dintre dou ă numere ş i un num ă r mic vom
constata c ă raporturile sunt identice :
Distan ţă mare
Numă r mare
Distan ţă mic ă
Numă r mic
Arhitectura Sistemelor de Calcul
25. 2- Reprezentarea datelor
25
Exemplu de conversie
• Exemplu: Converti ţ i (9.375 × 10 -2 ) 10 î n baza 2, nota ţ ie
ş tiin ţ ific ă
• Î ncepem prin convertirea din baza 10 - virgul ă flotant ă î n
baza 10 virgul ă fix ă prin mutarea punctului zecimal cu dou ă
pozi ţ ii la stânga , ceea ce corespunde exponentului -2: .
09375.
• Convertim din baza 10 – virgul ă fix ă î n baza 2 virgul ă fix ă:
.09375 × 2 = 0.1875
.1875 × 2 = 0.375
.375 × 2 = 0.75
.75 × 2 = 1.5
.5 × 2 = 1.0
• Rezult ă : (.09375) 10 = (.00011) 2 .
• Î n final, convertim î n forma normalizat ă î n baza 2 –
virgul ă mobil ă:
Arhitectura Sistemelor de Calcul
26. 2- Reprezentarea datelor
26
Formatul IEEE-754 pentru numere
î n virgulă mobil ă
Arhitectura Sistemelor de Calcul
27. 2- Reprezentarea datelor
27
Exemple IEEE-754
Arhitectura Sistemelor de Calcul
28. 2- Reprezentarea datelor
28
Exemplu de conversie IEEE-754
• Reprezenta ţ i -12.625 10 î n format IEEE-754 cu precizie
simplă.
• Pasul #1: Se converte ş te î n baza ţ int ă -12.625 10 =
-1100.101 2
• Pasul #2: Normalizare -1100.101 2 = -1.100101 2 × 2 3
• Pasul #3: Se completeaz ă bi ţ ii . Semnul este negativ, a ş a c ă
bitul de semn este 1 . Exponentul este î n format exces 127
(nu î n exces 128!), a ş a c ă exponentul este reprezentat ca
numă rul fă r ă semn 3 + 127 = 130.
Primul bit al significandului cu valoarea 1 este ascuns a ş a
că, secven ţ a de bi ţ i este :
1 1000 0010 . 1001 0100 0000 0000 0000 000
Arhitectura Sistemelor de Calcul
29. 2- Reprezentarea datelor
29
Efectul pierderii preciziei
Conform guvernului
SUA, î n timpul
opera ţ iunii
“Furtun ă î n
de ş ert” 1991-1992,
pierderea
preciziei la
conversia unui
numă r din
reprezentarea
î ntreg pe 24 de
biţ i î n num ă r real
pe 24 de bi ţ i a fost
cauza e ş ecului
unui sistem anti-
rachete Patriot
(radar). S-a soldat
cu 28 de americani
Arhitectura Sistemelor de Calcul
morţ i (25 Feb.
30. 2- Reprezentarea datelor
30
Codul de caractere ASCII
• ASCII este un cod pe
7 biţ i, stocat î ntr-un
octet (8 biţ i) .
• “A” este la poziţ ia
41 16 . Pentru a
converti litere mari
î n litere mici se
adun ă 20 16 . Astfel “a”
este la pozi ţ ia 41 16 +
20 16 = 61 16 .
• Caracterul “5” este la
poziţ ia 35 16 este
diferit de num ă rul 5.
Pentru a coverti
“caracterele-cifr ă ” î n
cifrele
corespunz ă toare
trebuie sc ă zut 30 16 :
35 16 - 30 16 = 5.
Arhitectura Sistemelor de Calcul
31. 2- Reprezentarea datelor
31
Codul de
caractere
EBCDIC
• EBCDIC este
un cod pe 8
biţ i
Arhitectura Sistemelor de Calcul
32. 2- Reprezentarea datelor
32
Codul de
caractere
Unicode
• Unicode este
un cod pe 16
biţ i
Arhitectura Sistemelor de Calcul
33. 2- Reprezentarea datelor
33
Test de verificare a
cunoş tin ţ elor la
Reprezentarea datelor
Nov. 2009
Arhitectura Sistemelor de Calcul
34. 2- Reprezentarea datelor
34
1.
Converti ţ i numerele:
a. (47) 10 în reprezentarea binar
fă ră semn
b. (2C3) 16 în baza 10
c. (10110.101) 2 în baza 10
Arhitectura Sistemelor de Calcul
35. 2- Reprezentarea datelor
35
2.
Converti ţ i numerele:
d. (55.875) 10 în binar f ă r ă semn
e. (-27) 10 în exces 32 pe 6 bi ţ i
Arhitectura Sistemelor de Calcul
36. 2- Reprezentarea datelor
36
3.
f. Secven ţ a de bi ţ i 1000 este
reprezentat ă în complement
fa ţă de 2 pe 4 bi ţ i. Cât este
valoarea zecimal ă ?
Arhitectura Sistemelor de Calcul
37. 2- Reprezentarea datelor
37
4.
g. Scrie ţ i reprezentarea lui (305) 10
pe 4 cifre BCD ş i
h. reprezentarea lui (-305) 10 tot pe
4 cifre BCD în complement fa ţă
de 10
Arhitectura Sistemelor de Calcul
38. 2- Reprezentarea datelor
38
5.
i. Numă rul -1.0101 x 2 -2 este
reprezentat în baza 2 nota ţ ie
ş tiinţ ifică . Scrie ţ i reprezentarea
binar ă în virgul ă mobil ă a acestui
numă r pe 8 bi ţ i ş tiind c ă bitul cel
mai semnificativ este bit de semn,
urmă torii trei bi ţ i reprezint ă
exponentul reprezentat în exces 3
iar ultimii 4 bi ţ i, cei mai pu ţ in
semnificativi, reprezint ă partea
fracţ ionar ă normalizat ă un bit fiind
ascuns. Bitul ascuns este în partea
dreapt ă a punctului zecimal.
Arhitectura Sistemelor de Calcul
39. 2- Reprezentarea datelor
39
GATA!
Arhitectura Sistemelor de Calcul
40. 2- Reprezentarea datelor
40
R ă spunsuri:
a. (47) 10 = (101111) 2
b. (2C3) 16 = (707) 10
c. (10110.101) 2 = (181/8) 10
d. (55.875) 10 = (110111.111) 2
e. (-27) 10 = (000101) 2 în exces 32
f. (1000) 2 = -8 (complement fa ţă de 2 pe 4 bi ţ i)
g. (305) 10 = 0011 0000 0101 (BCD)
h. (-305) 10 = 0110 1001 0101 (BCD complement fa ţă
de 10)
i. -1.0101 x 2 -2 = 1 001 0101
Arhitectura Sistemelor de Calcul