Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
n −1
Valore di N = ∑ ci b i
i=−m
Es.
13,37510 = 5*10-3 + 7*10-2 +3*10-1 + 3*100 + 1*101
13 375
codifica interi codifica frazionaria
13,375
0,1 |0,2 |0
0,2 |0,4 |0 0,110=0.0001100011... (∞ bit)
0,4 |0,8 |0
0,8 |1,6 |1
0,6 |1,2 |1
0,2 |0,4 .... si ripete in modo periodico
Before 1985
Non esiste un accordo su un format per real numbers (fighting)
1985 Agreement
Standard IEEE 754-1985 for binary FP arithmetic
“What Every Computer Scientist Should Know About Floating-Point
Arithmetic”, David Goldberg, ACM Computing Surveys, Vol 23, No 1,
March 1991, pp. 5-48
Tutto risolto?
New York Times, nov. 1994 “Intel’s Pentium problem persists”
(300 milioni di dollari per il ritiro)
Rappresentazione normalizzata N= s M * 2e
s=± 1≤ M<2 b=2 e=±numero intero
ns nM ne e+ (2(ne-1)-1) precisione
singola 0 1 23 8 e+127 24
precis. -126 – 127
FP32
doppia 0 1 52t 11 e+1023 53
precis. -1022 –
FP64 1023
Intel 80 1 1 63 15 64
bit
s 0=positivo 1=negativo
M codifica della sola parte frazionaria
e codifica del valore positivo es. FP32 ⇒ e+127
Esempi di intervalli
Tipi Bit Intervallo possibile (float.h)
C
float FP32 -3,4*1038 …-1,1*10-38 (FLT_MIN)
1,1*10-38… 3.4*1038 (FLT_MAX)
FLT_MIN =
(1+0,5+0,25+...)2127= 2128
FLT_MIN = (1+0)2-126
double FP64 -1.7*10308…-2.2*10-308 (DBL_MIN)
2.2*10-308 a 1.7*10308 (DBL_MAX)
Osservazione 1 FP vs v.fissa
8.750.000.000
v. fissa: non rappresentabile
FP32: 0,875*1010 = 1,018634065..*233
= 0 10100000 00000100110001010011001
0,0000000000875
v.fissa: rappresentato come 0
FP32: 0,875*10-10 = 1,5032385..* 2-34
= 0 01011101 10000000110101000011110
3 + 1.5*21 1000000
0.75= 1.5 * 2-1 1]1000000 shift 2bit sx 0110000
-----------
1.875*2 ⇐ 1110000
numero
1) 2,1 = 1,05 * 21 ⇒ 00001100110011…….
2) 1,5= 1,5 * 20 ⇒ 1(0..0) = 1,5
3) 1,8750= 1,875*20 ⇒ 111 (0…0) = 1,875
4)16,5625=1,035*24⇒ 00001001
Corrispondenza precisa
Osservazione 4. Corrispondenza biunivoca tra decimale e FP
Si afferma che esiste in FP32/64 con decimali composti da 6/15
cifre decimali.
Cosa significa
Numeri decimali composti da 6/15 cifre complessive sono in
corrispondenza biunivoca .con configurazioni FP32/64
NON che i decimali con 6/15 cifre della parte frazionaria .....
FP32 FP64
ε = 2-(p-1) ε = 2-23 2-52
int 32 ≈4 *109
FP 32 ≈6.8 *1038
Dato x>0
x_ x x+
down, toward 0 roundup
round to nearest
2. Er(x) = | (x - round(x)) / x|
14