Documente Academic
Documente Profesional
Documente Cultură
Reprezentarea n complement fa
de 2
cerine
reprezentare neredundant
o singur reprezentare pentru 0
adunarea a dou numere se poate realiza cu un
singur sumator
la fel ca la numere fr semn
beneficiu - o singur operaie de adunare
implementat n procesor pentru tipuri de date cu
semn i fr semn
177
Arhitectura calculatoarelor i sisteme de operare - partea I
Complement fa de 2
notaie: C2
valCn,m a n -1a n -2 a1a 0a -1 a -m
2
a n -2 2n 2 a -m 2m dac a n -1 0
n -2
a 2 n 2
a -m 2 m
2 n -1
dac a n -1 1
tem: demonstrai c valoarea este negativ
pentru an-1 = 1
deci an-1 reprezint semnul
178
Arhitectura calculatoarelor i sisteme de operare - partea I
Complement fa de 2 - limite
pe n+m bii sunt 2n+m reprezentri diferite
i 2n+m numere diferite
00...0 - singura reprezentare pentru 0
valorile extreme reprezentabile
max n,A mS valn,A mS (011) 2n -1 - 2-m
min n,A mS valn,A mS (10 0) - 2n -1
deci numerele reprezentabile sunt n intervalul
[-2n-1; +(2n-1-2-m)] - asimetric
179
Arhitectura calculatoarelor i sisteme de operare - partea I
Complement fa de 2 - precizie
numerele reprezentabile exact ncep cu
min=-2n-1
i continu cu pasul 2-m
celelalte numere din interval - aproximare
eroarea - cel mult 2-m
deci precizia reprezentrii este 2-m
pentru n+m fixat
numere mai mari = precizie mai slab i invers
180
Arhitectura calculatoarelor i sisteme de operare - partea I
Complementare (1)
181
Arhitectura calculatoarelor i sisteme de operare - partea I
Complementare (2)
exemplu
q = 77 are reprezentarea 01001101 n C8,0
2
Exemple (1)
val8,0
C 2
00110011 25
2 4
21
2 0
51
val6,2
C 2
00110011 2 3
2 2
2 1
2 2
12,75
sau
val6,2
C 2
00110011 val8,0
C 00110011
2
: 2 2
51 : 4 12,75
sau
valC4,4 00110011 val8,0
2 C 00110011
2
: 2 4
51 : 16 3,1875
183
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemple (2)
val8,0
C 2
11001101 26
23
2 2
20
27
77 128 51
sau
valC4,4 11001101 val8,0
2 C 11001101
2
: 2 4
51 : 16 3,1875
min 8,0
C val
2
8,0
C
2
10000000 0 27
128
min C4,4 valC4,4 10000000 0 23 8
2 2
sau
min C4,4 min 8,0
2 C : 22
4
128 : 16 8
184
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemple (3)
max 8,0 C 01111111 127
8,0
C 2
val 2
sau
min C4,4 min 8,0
2 C :
2
2 4
127 : 16 7,9375
intervale reprezentabile
C28,0: [-128; 127] 256 numere, din 1 n 1
C24,4: [-8; 7,9375] 256 numere, din 0,0625 n
0,0625 (=1:16)
185
Arhitectura calculatoarelor i sisteme de operare - partea I
Concluzii
C2 este reprezentarea utilizat cel mai des
neredundant
adunarea/scderea - implementate la fel ca la
numere fr semn
n practic - tipuri de date ntregi din
limbajele de programare
caz particular (m=0)
pentru numere reale se utilizeaz reprezentrile
n virgul mobil
186
Arhitectura calculatoarelor i sisteme de operare - partea I
187
Arhitectura calculatoarelor i sisteme de operare - partea I
Depiri
nu sunt suficieni bii la partea ntreag
pentru numrul de reprezentat
numrul este n afara intervalului reprezentabil
problem
avnd dou numere reprezentabile, rezultatul
unei operaii efectuate asupra lor poate s nu fie
reprezentabil - depire
cnd se ntmpl i cum detectm aa ceva?
188
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemple
numr
codificare 51 -51
A+S8,0 00110011 10110011
A+S16,0 0000000000110011 1000000000110011
C18,0 00110011 11001100
C116,0 0000000000110011 1111111111001100
C28,0 00110011 11001101
C216,0 0000000000110011 1111111111001101
190
Arhitectura calculatoarelor i sisteme de operare - partea I
191
Arhitectura calculatoarelor i sisteme de operare - partea I
Operaii n C2
n continuare vom discuta doar cazul C2
reprezentarea cel mai des folosit
restricii impuse de calculator asupra
operaiilor cu reprezentri
termenii sumei i rezultatul se reprezint pe
acelai numr de bii
termenii nmulirii se reprezint pe acelai
numr de bii, iar rezultatul pe numr dublu de
bii
192
Arhitectura calculatoarelor i sisteme de operare - partea I
Definiia depirii
fie o reprezentare dat i op o operaie cu
numere
pe n+m bii, numerele reprezentabile sunt n
intervalul [min; max]
fie dou numere a, b [min; max]
operaia op aplicat numerelor a i b
produce depire dac
a op b [min; max]
193
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemple (1)
n continuare vom folosi reprezentarea C2
cu n=4, m=0
1111 + 1111 = 11110 1110
bitul "suplimentar" este ignorat (doar 4 bii)
de fapt este bitul de transport
val 1111 1
4,0
C2
valC4,0 1110 2
2
Exemple (2)
0111 + 0111 = 1110 1110
nu avem bit "suplimentar" (transportul este 0)
valC4,0 0111 7
2
val 1110 2
4,0
C2
rezultat incorect - se produce depire
concluzie - bitul de transport nu ofer
informaii privind depirea
trebuie cutat alt form de detecie
195
Arhitectura calculatoarelor i sisteme de operare - partea I
Condiia de depire
nu putem folosi direct definiia depirii
numerele nu sunt disponibile
constatare
depire se poate produce la adunare doar cnd
ambii operanzi au acelai semn
iar reprezentarea rezultatului indic semn opus
tem: nu se poate produce depire la
adunarea a dou numere de semn opus
196
Arhitectura calculatoarelor i sisteme de operare - partea I
Teorema 1
dac numerele a i b sunt reprezentabile n
C2n,m, atunci a b sunt reprezentabile n
C2n+1,m
Lem
dac a valCn 1,m n n-1 10-1 -m i n n -1
2
197
Arhitectura calculatoarelor i sisteme de operare - partea I
i m i m
198
Arhitectura calculatoarelor i sisteme de operare - partea I
Consecine
200
Arhitectura calculatoarelor i sisteme de operare - partea I
IV.4. Reprezentri n
virgul mobil
201
Arhitectura calculatoarelor i sisteme de operare - partea I
Probleme cu reprezentrile n
virgul fix
lungimea total n+m este fixat prin
hardware
dar, n virgul fix, att n ct i m sunt la
rndul lor fixate
deci magnitudinea i precizia sunt prestabilite i
nu pot fi modificate
dac dorim o precizie mai bun i suntem
dispui s reducem magnitudinea (sau invers)?
202
Arhitectura calculatoarelor i sisteme de operare - partea I
Notaia tiinific
util pentru numere cu multe cifre
745194.2623 10-32 n loc de
0.000000000000000000000000007451942623
acelai numr - mai multe forme de scriere
571.42 102 = 5.7142 104 = 571420 10-1 = ...
scriere normalizat - unic
exact o cifr semnificativ nainte de virgul
5.7142 104
203
Arhitectura calculatoarelor i sisteme de operare - partea I
Limite
numrul de bii al caracteristicii este fixat
deci exist o valoare minim i una maxim
pentru exponent
depire superioar - exponent prea mare
numrul este considerat
depire inferioar - exponent prea mic
numrul este considerat 0
tipul depirii nu depinde de semn
206
Arhitectura calculatoarelor i sisteme de operare - partea I
Standardizare
esenial pentru portabilitate
standardul IEEE 754/1985
elaborat ntre 1977 i 1985
prima implementare comercial: Intel 8087
2 variante principale
simpl precizie (32 bii)
dubl precizie (64 bii)
au fost proiectate i unele extensii
207
Arhitectura calculatoarelor i sisteme de operare - partea I
Simpl precizie
31 30 23 22 0
S C = exponent + 127 f = partea fracionar a mantisei
Dubl precizie
63 62 52 51 0
S C = exponent + 1023 f = partea fracionar a mantisei
corespunde tipului double din C/C++
limite n baza 10
minim: 1.7 10-308
maxim: 1.7 10308
magnitudine mai mare
precizie superioar
209
Arhitectura calculatoarelor i sisteme de operare - partea I
Structur
210
Arhitectura calculatoarelor i sisteme de operare - partea I
211
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemplu 1
fie numrul -23.25
cum se reprezint n simpl precizie?
semnul: 1 (negativ)
scriere n baza 2: -23.25(10) = -10111.01(2)
normalizare: 10111.01 = 1.011101 24
caracteristica: 4 + 127 = 131 = 10000011(2)
reprezentarea
1 10000011 0111010...0(2) = C1BA0000(16)
212
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemplu 2
ce numr corespunde reprezentrii
42D80000(16) (simpl precizie)?
42D80000(16) = 0 10000101 10110000...0(2)
S = 0 numr pozitiv
C = 10000101(2) = 133(10) e = 133 - 127 = 6
M = 1 + 0.1011 = 1.1011
numrul: +1.1011 26 = 1101100(2) = 108(10)
213
Arhitectura calculatoarelor i sisteme de operare - partea I
Aritmetica extins
n plus fa de aritmetica numerelor reale
reprezentarea numrului i definirea regulilor
elementare de calcul cu acesta
x / , x ,
reprezentare pentru rezultatul operaiilor
nedefinite (NaN - Not a Number) i definirea
regulilor de propagare a acestuia
NaN op x = NaN, op
utilizare - bibliotecile de funcii matematice
214
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemplu
calculul funciei arccos cu formula
arccosx 2 arctan 1 - x 1 x
care este valoarea arccos(-1)?
x 1 1 x 1 x 2 0
arctan 1 x 1 x 2
rspuns: arccos (-1) =
nu ar fi fost posibil de obinut fr aritmetica
extins
215
Arhitectura calculatoarelor i sisteme de operare - partea I
216
Arhitectura calculatoarelor i sisteme de operare - partea I
Depiri
depire inferioar
n forma normalizat, exponentul negativ nu
poate fi reprezentat n cmpul caracteristicii
numrul va fi considerat 0
depire superioar
n forma normalizat, exponentul pozitiv nu
poate fi reprezentat n cmpul caracteristicii
numrul va fi considerat , dup caz
217
Arhitectura calculatoarelor i sisteme de operare - partea I
Reprezentri denormalizate
218
Arhitectura calculatoarelor i sisteme de operare - partea I
Aproximri (1)
depirea inferioar este de fapt aproximare
un numr nenul foarte mic este considerat 0
care este precizia reprezentrii n virgul
mobil?
depinde de exponent
simpl precizie: 2e-23
dubl precizie: 2e-52
exponent foarte mare - precizie foarte slab
219
Arhitectura calculatoarelor i sisteme de operare - partea I
Aproximri (2)
exemplu: e = 123
diferena ntre dou numere consecutive
reprezentabile exact este 2123-23 = 2100 1030
ce putem reprezenta exact?
numere raionale (nu reale) - doar o parte
220
Arhitectura calculatoarelor i sisteme de operare - partea I
y my 2
ey
x y m m 2
e x e y
2 , dac e x e y
ey
x y
x y m x m y 2
ex e y
x : y m x : m y 2
e x e y
221
Arhitectura calculatoarelor i sisteme de operare - partea I
adunarea exponenilor
nmulirea mantiselor
normalizarea produsului
dac apare depire - oprire
rotunjirea mantisei rezultat la numrul
permis de bii
determinarea semnului rezultatului
223
Arhitectura calculatoarelor i sisteme de operare - partea I
Tem
224