Documente Academic
Documente Profesional
Documente Cultură
Reprezentãri Binare Ale Numerelor Reale
Reprezentãri Binare Ale Numerelor Reale
- dacă partea întreagă a numărului are prea puţine cifre, se adaugă la stânga
zerouri suplimentare;
- dacă partea întreagă are prea multe cifre, se pierd cifrele cele mai
semnificative ce depăşesc spaţiul de reprezentare;
- dacă partea fracţionară are prea puţine cifre, se adaugă la dreapta zerouri
nesemnificative;
- dacă partea fracţionară are prea multe cifre, se pierd cifrele cele mai
nesemnificative care depăşesc spaţiul de reprezentare rezervat.
Poziţia virgulei este virtuală, fiind plasată după bitul 0 al părţii întregi şi
înaintea bitului -1 al părţii fracţionare.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0010011010101010 = 26AA
0110011010101010 = 66AA
Cel mai mic număr pozitiv reprezentabil este (0...0,0...01) 2 având I zerouri
la partea întreagă şi F-1 zerouri la partea fracţionară. Valoarea acestui număr este:
minim = 2-F
Cel mai mare număr pozitiv reprezentabil este (1...1,1...1) 2 având I cifre 1
la partea întreagă şi F cifre 1 la partea fracţionară. Acest număr poate fi scris ca
rezultat al diferenţei cu I+1 cifre la partea întreagă şi F cifre la partea fracţionară:
10...0,0...00 -
0,0...01
-------------
1...1,1...11
Dar descăzutul are valoarea 2I şi scăzătorul are valoarea 2-F, atunci cel mai mare
număr are valoarea:
MAXIM = 2I-2-F
x = ±0,m be
unde:
m - este mantisă numărului;
b - este o bază de numeraţie;
e - este un exponent.
x = ±1,m 2e
s m t e
1 M 1 E
s m c
1 M E
c=e+q
0 e + q 2E - 1 -q e 2E -1 - q
E -1
E
2 - 1 2 + 1
E
q = 2 sau q = sau q =
2 2
Din modul de reprezentare rezultă că un număr real se reprezintă în virgulă
flotantă aproximativ, având, în funcţie de tipul mantisei, maximum M sau M+1
cifre binare semnificative. De asemenea, ordinul de mărime este de asemenea
limitat de numărul de biţi rezervaţi caracteristicii.
Să vedem acum care este cel mai mic număr pozitiv reprezentabil şi care
este cel mai mare număr pozitiv reprezentabil. Cu notaţiile de mai sus, aceste
valori sunt următoarele:
Cel mai mic strict pozitiv în convenţia reprezentării subunitare nenormalizate este:
Exemple. Mai întâi vom arăta cum se converteşte un număr real în virgulă
flotantă. Să considerăm numărul:
(-3572,54)10
Mai întâi îl vom converti în baza 16, reţinând 14 cifre hexazecimale semnificative,
care sunt suficiente pentru reprezentările pe care le avem în vedere, şi obţinem
numărul:
(-DF4,8A3D708A3D7...)16
(-110111110100,10001010001111010111000010001010001111010111)2
Acum îl punem în forma normalizată, aşa cum am arătat mai sus, şi reţinem numai
52 de cifre după virgulă:
(-1,1011111010010001010001111010111000010001010001111010)2211
Din această formă vom prelua, începând cu bitul de după virgulă, atâţia biţi câţi
sunt necesari pentru partea de mantisă a fiecărei reprezentări. Rescriem numărul
rezultat în baza 16:
(-1,BE9147AE1147)16211
- dubla precizie:
c = e + 1023 = (134)10 = (40A)16 = (10000001010)2
- TURBO Pascal:
c = e + 129 = (140)10 = (8C)16 = (10001100)2
- simplă precizie:
┌─┬──────┬────────────────┐
│ 1│10001010│10111110100100010100011│
└─┴──────┴────────────────┘2
┌─┬────────────────────────────┬──────┐
│ 1│101111101001000101000111101011100001000│10001100 │
└─┴────────────────────────────┴──────┘2
┌──────────┐
│ DF48A3D7088C│
└──────────┘16
┌───────┐
│ C55F48A3 │
└───────┘16
(-1BE9146)16 211 =
(-1BE9146)16 2-13 =
(-29266246)10 / (8192)10 =
(-3572,5397949...)10