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

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

2-2

M=

2-1

20

7
2

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