Sunteți pe pagina 1din 5

Capitolul 1 CALCULUL N VIRGUL MOBIL

1.1

Aritmetica n virgul mobil

Rezolvarea diferitelor probleme cu ajutorul calculatorului numeric depinde, ntr-o prima instan, de posibilitatea de a reprezenta numerele n maina de calcul folosit. Aceast posibilitate depinde de tipul numerelor i de structura constructiv (hardware) a echipamentului de calcul, anume: baza de reprezentare a numerelor (baza mainii de calcul) i lungimea cuvntului de memorie. Ca urmare, se poate reprezenta un numr finit de cifre n sistemul de numeraie folosit. Din acest punct de vedere, numerele ntregi i cele reale sufer un tratament diferit, dup cum se detaliaz n continuare. Astfel, numerele ntregi reprezentabile n calculator, care formeaz mulimea notat cu I, constituie o submulime finit a mulimii numerelor ntregi Z: I Z . Reprezentarea acestor numere este exact, iar aritmetica cu aceste numere este de asemenea exact, excepie facnd operaia de mprire, n general. Astfel, domeniul valorilor ntregi reprezentabile n calculatorul numeric este:
I = {z Z / m I z M I } ,

unde mrimile m I i M I depind de urmtoarele: spaiul de memorie pus la dispoziie pentru acest tip de numere, baza de numeraie folosit, precum i modul de reprezentare a acestor numere. Notnd cu baza de reprezentare a numerelor ntregi i cu t I numrul de cifre n baza care pot fi reprezentate pe un cuvnt sau multiplu de cuvnt de memorie, se pot scrie relaiile: m I = t I 1 , M I = t I 1 1 . Dac baza de numeraie este doi i sunt t I = 16 cifre binare, atunci domeniul de reprezentare pentru numere ntregi este cuprins ntre 215 i 215 1 . Dac numrul de cifre binare este t I = 32 , atunci domeniul de reprezentare este cuprins ntre 2 31 i 2 31 1 . ncercarea de a opera cu numere care nu aparin domeniului I de reprezentare, determin, la majoritatea calculatoarelor numerice, emiterea unor

1.

Calculul n virgul mobil

mesaje de eroare fatal, programele implicate fiind abandonate: depire (binar) inferioar (dac z < m I ), respectiv depire (binar) superioar (dac z > M I ). Uzual este reprezentarea n baza de numeraie doi, alocndu-se o cifr binar pentru semn i t I 1 cifre pentru numr, anume reprezentarea n cod complementar fa de baza definit astfel:
z0 z , . z c = tI | z |, z < 0

Spre deosebire de numerele ntregi, n general numerele reale se reprezint aproximativ n calculatorul numeric. n continuare se definesc dou submulimi ale numerelor reale i anume: submulimea G care conine numerele reale care s-ar putea reprezenta n calculatorul numeric; submulimea F care conine numerele reale care se reprezint efectiv n calculatorul numeric. n timp ce mulimea G, ca i mulimea numerelor reale , are un numr infinit de elemente, mulimea F are un numr finit de elemente, relaia care se poate scrie ntre aceste mulimi fiind: F G . Metoda cea mai larg folosit pentru reprezentarea numerelor reale n calculator, numere care aparin mulimii F, este cea a virgulei mobile. Definiie:
Prin aritmetica virgulei mobile se neleg urmtoarele: (a) un model matematic de reprezentare a numerelor (definirea mulimii F); (b) o modalitate de reprezentare a numerelor din mulimea G n calculatorul numeric, altfel spus o modalitate de implementare n calculator a modelului (definirea operatorului de rotunjire, notat cu fl); (c) operaiile elementare: adunarea, scderea, nmulirea i mprirea definite cu numerele mulimii F. Acestea sunt detaliate n seciunile urmtoare ale acestui subcapitol. 1.1.1 Numere n virgul mobil

Conceptul de numr n virgul mobil se poate introduce prin exemplul urmtor.


Exemplul 1.1:

Fie numrul real x = 1234,56789 . Acesta se poate scrie i sub urmtoarele

1.1

Aritmetica n virgul mobil

forme: x = 1234,56789 10 0 = 123456789,0 10 5 = 0,00123456789 10 6 =


= 0,123456789 10 4

Corespunztor ultimei forme scrise, se denumesc i se noteaz urmtoarele elemente: mantis (fracie), notat cu f, reprezentnd numrul fracionar; exponent, notat cu e, reprezentnd exponentul la care este ridicat baza de numeraie folosit; baza de numeraie, notat cu , n cazul de fa egal cu 10;
numrul cifrelor mantisei, notat cu litera t. Rezult, aadar, c poziia virgulei poate fi modificat, cu adaptarea corespunztoare a exponentului. Din acest punct de vedere, se spune c numerele ntregi tratate anterior sunt reprezentate n virgul fix.

Definiie:
O mulime de numere n virgul mobil este definit prin urmtorii parametri: (a) - baza mainii de calcul; (b) t - numrul de cifre n baza utilizate pentru a reprezenta partea fracionar (precizia mainii de calcul); (c) L - cel mai mic exponent (limita de depire inferioar); (d) U - cel mai mare exponent (limita de depire superioar).

Exponentul e este cuprins ntre valorile: L e U . Definiie:


Mulimea F de numere n virgul mobil este:

F = {x / x = f e } {0} , unde:

d f = 1 + LeU

di
i

dt , 0 d i 1, i = 1, , t t

unde f este mantisa (fracia), e este exponentul, este baza mainii, t este numrul de cifre n baza i d i sunt cifrele bazei.

Dac pentru orice x F \ {0} , prima cifr a fraciei, d 1 , este diferit de zero, atunci se spune c sistemul de numere n virgul mobil este normalizat. n acest caz, poate fi scris relaia: 1 / | f |< 1 .

1.

Calculul n virgul mobil

Orice numr x F \ {0} este cuprins ntre dou valori extreme:


m | x | M M = L 1 , M = U (1 t )

Acestea se numesc: m cel mai mic numr real pozitiv reprezentabil, iar M cel mai mare numr real pozitiv reprezentabil. n acest caz, mulimea G se poate defini ca fiind: G = {x / m | x | M} {0} = [ M, m] {0} [m, M ] . ncercarea de a opera cu numere nenule care nu se ncadreaz ntre aceste limite conduce, pentru majoritatea calculatoarelor numerice, la emiterea unor mesaje de eroare fatal, care vor determina abandonarea programului: depire flotant inferioar (dac | x |< m ), respectiv depire flotant superioar (dac | x |> M ). n unele implementri, se atribuie valoarea zero pentru numerele din prima categorie menionat, fr emiterea mesajului de eroare, mpreun cu emiterea unui mesaj de avertizare.
Exemplul 1.2:

Se consider o mulime de numere n virgul mobil normalizat cu urmtorii parametri: = 2 , t = 3 , L = 1 , U = 2 . Rezult, conform relaiilor scrise mai sus: m = 1 / 4 i M = 7 / 2 . Elementele mulimii F sunt n acest caz:
.100 2 e , .101 2 e , .110 2 e , .111 2 e , e {1, 0, 1, 2} .

Numrul elementelor mulimii F este: card(F) = 33 . Elementele pozitive ale mulimii F sunt prezentate n Figura 1.1.
m= 1 4 M= 7 2

2-2

2-1

20

21

Fig. 1.1 Elementele pozitive ale mulimii numerelor n virgul mobil ( = 2 , t = 3 , L = 1 , U = 2 , reprezentare normalizat) Mulimea F este o mulime finit. ntre puterile succesive ale lui numerele din mulimea F sunt echidistante, numrul acestora fiind constant. Numrul de elemente ale lui F este dat de relaia: card(F) = 2 t 1 ( 1) ( U L + 1) + 1 ,

1.1

Aritmetica n virgul mobil

n care mrimea t 1 ( 1) = t t 1 reprezint numrul constant de elemente dintr-un interval definit de ctre dou puteri succesive ale bazei i U L + 1 reprezint numrul de intervale determinate de ctre puterile succesive ale lui . Produsul acestora este multiplicat cu 2 pentru a include att numerele pozitive, ct i pe cele negative. Valoarea 1 este adugat pentru elementul 0. Concluzii: (a) Numerele aparinnd mulimii F nu sunt echidistante n domeniul lor de existen; acestea sunt mai dese n apropierea originii (puterile lui scad) i mai rare spre extremitile mulimii F (puterile lui cresc). (b) Numerele sunt echidistante numai ntre puterile succesive ale lui . (c) Datorit faptului c mulimea F are un numr finit de elemente, nu se pot reprezenta continuu, n detaliu, toate numerele reale; mai mult, fiecare numr din mulimea F este asociat unui ntreg interval din mulimea G, deci unui ntreg interval de numere reale. Uzual este reprezentarea normalizat n baza de numeraie doi, alocndu-se o poziie binar pentru semn, un numr de poziii binare pentru exponent i t cifre binare pentru mantis. Deoarece tipul de semn al numrului este memorat, pentru fracie se realizeaz o reprezentare a ntregului d 1d 2 d t t (valoarea absolut a mantisei). De asemenea, pentru a nu se memora semnul i pentru exponent, se reprezint un numr ntreg pozitiv: C = e + E 0 , mrimea E numindu-se deplasament, iar mrimea C numindu-se caracteristic. Cum reprezentarea este normalizat, prima cifr a fraciei este d 1 = 1 i nu se mai reprezint. Astfel, se ctig nc o poziie binar pentru fracie. Se spune c se realizeaz o reprezentare normalizat cu poziie binar ascuns (n limba englez, hidden bit).
Exemplul 1.3:

Pentru = 2 i 32 de poziii binare pentru un numr real, reprezentarea se realizeaz n simpl precizie, iar pentru 64 de poziii binare pentru un numr real, reprezentarea se realizeaz n dubl precizie. Dup standardul IEEE (abreviere din limba englez, the Institute of Electrical and Electronics Engineers Inc. USA), pentru = 2 rezult t = 24 , L = 126 i U = 127 pentru reprezentarea n simpl precizie i t = 53 , L = 1022 , U = 1023 pentru reprezentarea n dubl precizie. Rezult, de asemenea, pentru reprezentarea n simpl precizie: m 10 38 i M 10 +38 , iar pentru reprezentarea n dubl precizie: m 10 308 i M 10 +308 .

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