Sunteți pe pagina 1din 31

IV.4.8.

Reprezentarea numerelor reale:


aritmetica n virgul mobil

Reprezentarea n virgul mobil


Reprezentrile n virgul fix nu sunt potrivite
pentru numere reale
Dualitatea magnitudine / precizie
lungimea n+m fixat
creterea magnitudinii nrutete precizia i reciproc

Virgul mobil: un numr se reprezint printr-o


pereche de reprezentri n virgul fix
permind reprezentarea simultan de numere cu
magnitudini i precizii diferite

Notaia tiinific; normalizare


Exemple
7.015791043zece

scriere poziional

55312.1784zece 10 -105

ar necesita 110 cifre n scriere poziional, doar 14 aici.

0.00000083zece 10 4

Se poate scrie i eliminnd zerourile semnificative

Numeroase scrieri posibile pentru acelai numr

Notaia tiinific:
o singur cifr la stnga virgulei
0.031056zece 10 7
nc numeroase scrieri posibile pentru acelai numr

m1 Be1 = m2 Be1+k , unde m2 = m1 / B-k , pt. oricare k Z.

Scriere normalizat: reprezentare n notaie tiinific fr


prefix de zerouri semnificative
6.15zece 10 -75

poziional 78 de cifre semnificative, dintre care 75 zerouri

unic pentru un numr dat

Notaia tiinific n binar


1.101doi 2 2
6,5zece

1.xxxxdoi 2 yyy
n binar, doar numrul 0 nu conine nici o cifr 1
definire special a reprezentrii lui 0

pentru oricare alt numr reprezentabil, cel mai


semnificativ 1 trebuie s devin singura cifr de la
partea ntreag
ceea ce, n general, altereaz exponentul lui 2

Reprezentri n virgul mobil


Semnul (S): 0 sau 1
1 bit

Partea fracionar (f); mantisa este 1+f


mantisa are 1+23 (sau 1+52) bii

Caracteristica (C)
k=8 sau k=11 bii
C = exponent + exces

exces = 2k-1 1

x = ( +/- ) 1.f B C exces


Primul 1 i baza 2 se subneleg/nu se reprezint
O figur similar pentru numerele reprezentabile n virgul fix ar indica un singur
interval coninnd numere reprezentabile, simetric fa de 0 i cu cele dou capete
aflate fiecare ntr-unul din intervalele figurate aici cu verde.

Interval coninnd
numerele negative
reprezentabile

Depire
superioar
exponent

zero

Depire
inferioar
exponent

Interval coninnd
numerele pozitive
reprezentabile

Depire
superioar
exponent

Standardizare
Esenial pentru portabilitate i pentru ataarea
unei semantici generale a reprezentrii n virgul
mobil.
Proces nceput n 1977, ncheiat parial n 1985.
W. Kahan (University of Toronto).
Prima implementare comercial a standardului
IEEE (pe atunci, n curs de elaborare): 1981 - Intel
8087.

Standardul IEEE 754 / 1985


Precizie simpl: float n C/C++ (32 bii)
01
s

8 9

c = exponent + 127

Margini n baza 10:

31
f = partea fracionar a mantisei

1.2 10 -38 3.4 10 38

Intereseaz nu doar structura reprezentrii, ci mai ales operaiile ce


se pot efectua cu reprezentri.
Exemple:

Compararea: reprezentarea n XS are avantajul inducerii ordinii naturale pe


mulimea reprezentrii exponenilor
nmulirea: adunarea exponenilor la nmulire cu scderea excesului

Precizie dubl
Precizie dubl: double n C/C++ (64 bii)
0

1
s

11
exponent + 1023

20

31

f = partea fracionar a mantisei

continuarea prii fracionare a mantisei


0

31

Margini n baza 10:

1.7 10 -308 1.7 10 308

Fa de precizia simpl:
- Crete intervalul pentru exponent
- La exponent egal, crete acurateea (precizia) reprezentrii
datorit lungimii mai mari a prii fracionare a mantisei

Dou reprezentri n virgul fix =


o reprezentare n virgul mobil
Mantisa: reprezentare modul i semn
(A+S) a coeficientului puterii bazei
Caracteristica: reprezentare n exces a
exponentului

Exist deci o valoare minim emin i


una maxim emax pentru exponent
de unde structura mulimii numerelor
reprezentabile
Ordinea din reprezentare (S C f) faciliteaz
compararea reprezentrilor
ordinea numerelor reprezentate coincide astfel
cu ordinea lexicografic a reprezentrilor

Reprezentri n norma IEEE 754


Precizie simpl

Precizie dubl

Bii "precizie"

24

53

Exponent maxim

128

1024

(pentru numere: 127)

(pentru numere: 1023)

-127

-1023

(pentru numere
normalizate: -126)

(pentru numere
normalizate: -1022)

127

1023

Exponent minim
Exces (exponent)

Un exemplu

Cum se reprezint numrul -7 n virgul


mobil simpl precizie (IEEE 754) ?
1. Semnul: minus, deci 1
2. Trecere n baza 2:
7zece = 111doi
3. Normalizare: 111doi = 1.11doi 22zece
4. Calculul caracteristicii (pe 8 bii) : (2 +
127)zece= 129zece = 10000001doi
5. Reprezentarea:
1 100.0000.1 110.0000.0000.0000.0000.0000doi
C0E00000hexazecimal

nc un exemplu

1.
2.
3.
4.
5.
6.

Cum se scrie poziional n baza zece numrul


reprezentat n simpl precizie IEEE 754 prin
C1F00000 hexazecimal ?
Scriere n binar: C1F00000hexazecimal =
1100 0001 1111 0000 0000 0000 0000 0000doi
Semn: 1, deci (numr negativ)
Caracteristica: 10000011doi = 131zece
Exponentul: 131 127 = 4
Mantisa: (1 + 0,111 )doi = 1,111doi
Valoarea: -1,111 24 = -11110doi = -30zece

Aritmetica extins (principii)


Aritmetica real uzual
proiectat pe mulimea numerelor reale reprezentabile
cu operaiile uzuale

La care se adaug:
reprezentare pentru i reguli elementare de calcul cu
acesta (a / , + )
reprezentri pentru rezultatul operaiilor nedefinite
(NaN) i reguli de propagare a acestuia (NaN op x =
NaN)

Aritmetica extins - exemplu


Calculul lui arccos cu formula:
arccos (x) = 2 arctan (sqrt ((1-x) / (1+x)))
arccos(-1) = ?
1+x 0 2 / (1+x)
arctan((1-x) / (1+x) ) / 2
Aceste relaii fac parte din aritmetica n
virgul mobil IEEE 754
Rezultat - corect: arccos (-1) =

Tipuri de valori n virgul mobil


n fiecare caz de mai jos, S este +1 sau -1 dup cum
bitul semn este 0 sau 1
Tip valoare

Valoare

normalizat

emin<e<emax

f oarecare

(-1)s 1.f 2e

denormalizat

e = emin

f0

(-1)s 0.f 2e

zero

e=0

f=0

S0

infinit

e = emax

f=0

NaN

e = emax

f0

NaN

Depiri
Depire inferioar: n forma normalizat
a numrului, exponentul negativ nu poate fi
reprezentat n cmpul caracteristicii
numrul va fi considerat 0

Depire superioar: n forma normalizat


a numrului, exponentul pozitiv este prea
mare pentru a putea fi reprezentat n cmpul
caracteristicii
numrul va fi considerat

Reprezentri denormalizate
numr mai mic n modul dect cea mai mic
reprezentare normalizat
se renun la normalizare
mantisa va fi 0.f, n loc de 1.f
iar exponentul va avea valoarea minim
-127 pentru simpl precizie
-1023 pentru dubl precizie

astfel se pot reprezenta numere mai mici

Aritmetica n virgul mobil


n general: fie x = xm 2xe i y = ym 2ye

Relaiile de mai jos se refer la notaia tiinific, nu la


reprezentarea n standard IEEE
xm i ym sunt mantisele, iar xe i ye exponenii (nu
caracteristicile)

x + y = (xm 2xe-ye + ym) 2ye , dac xe ye


x - y = (xm 2xe-ye - ym) 2ye , dac xe ye
x y = (xm ym) 2xe+ye
x : y = (xm : ym) 2xe-ye

Operaiile sunt ns mai complicate dect o


arat formulele

Adunarea n virgul mobil


1.

Se compar exponenii termenilor adunrii


dac acetia sunt diferii, atunci partea fracionar a numrului mai mic
se deplaseaz spre dreapta (denormalizare!) pn cnd exponentul su
devine egal cu exponentul mai mare
evident, unitatea hardware care face calculele opereaz n interior cu mai
muli bii dect reprezentarea standard

2.

Se adun mantisele

aici se decide i semnul sumei


adunarea mantiselor se efectueaz n complement fa de 2
deci pentru numere negative, se face complementarea corespunztoare,
iar rezultatul dac este negativ se complementeaz pentru a reveni
la A+S

3.

Dac este nevoie, se normalizeaz suma

fie decalnd rezultatul spre dreapta i incrementnd exponentul, fie


decalnd spre stnga i decrementnd exponentul

4.
5.

Dac se poduce depire excepie stop


Rotunjete mantisa la numrul permis de bii
dac astfel s-a produs denormalizare, reia de la 3

Tem
S se urmreasc paii adunrii n virgul
mobil pentru reprezentrile numerelor
scrise n baza zece ca 0,75 i -0,375.
Se va considera c semnul, exponentul i
mantisa sunt obinute ca pentru IEEE 754,
dar se reprezint pe 1 bit, 8 bii, respectiv 4
bii.

nmulirea n virgul mobil


1. Se calculeaz exponentul rezultatului adunnd
exponenii celor doi factori
se adun caracteristicile i se scade excesul

2. Se nmulesc mantisele
3. Se normalizeaz rezultatul
dac se produce depire excepie stop

4. Se fac rotunjirile necesare


dac se produce denormalizare, reia de la 3

5. Se determin semnul rezultatului

Tem
S se urmreasc paii nmulirii n virgul
mobil pentru reprezentrile numerelor
scrise n baza zece ca 0,75 i 0,375.
Reprezentrile sunt cele din standardul
IEEE 754.

Capitolul al V-lea

ARHITECTURA I
ORGANIZAREA
CALCULATORULUI

V.1.
CALCULATOARE VON NEUMANN

Calculatoare von Neumann


program memorat
memorie infinit (ideal), timp de acces egal
realizat practic prin ierarhii de memorie

la execuie, dup o instruciune i urmeaz


instruciunea memorat imediat dup ea (regula)
eventual instruciunea indicat de i (dac i este
instruciune de control)

adresa instruciunii urmtoare se afl ntr-un


registru PC
n fiecare moment, o singur instruciune este
ncrcat pentru execuie

Calculatoare von Neumann


Anterior:
conceptul de automatizare a operaiilor luate separat
(Pascal, Leibniz)
conceptul de program exterior (Babbage)
conceptul de calcul ramificat / control

Conceptul de program memorat


John von Neumann et al (1946)
concept arhitectural fundamental - procesoarele
moderne

Calculatoare von Neumann


Programul i datele - stocate n (aceeai) memorie
ideal: infinit, omogen (locaii la fel de rapid accesabile)
practic: o ierarhie de memorii, fiecare fiind omogen

Program counter (PC) indic locul din memorie al


instruciunii de executat
coninutul PC este actualizat la execuia fiecrei instruciuni
o dat sau de dou ori

Instruciunile programului sunt aduse pe rnd din


locaii de memorie n procesor
regula: locaii succesive incrementare PC
excepia: instruciuni de salt
ordine fizic i ordine logic

Arhitectura
unui sistem de calcul
programe utilizator
compilatoare

sistem de
operare

LIMBAJ MAIN

procesormemorie

intrri / ieiri

proiectare digital
circuite

Componentele hardware ale unui


calculator
Procesor
Intrri (Input)
Control
Memorie

Calea de date

Ieiri (Output)

Organizarea unui calculator


Magistrala sistem
Cache N2
Procesor
CPU Cache N1

Adaptor

Memorie
central

Magistrala de intrri/ieiri
Controler

Controler

Controler

Reea

S-ar putea să vă placă și