Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...
Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...
Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3. RAPPRESENTAZIONE DEI NUMERI NEL CALCOLATORE<br />
Esempio<br />
Esempio 3.4.1 Vogliamo scrivere il numero 5.75 10 in formato IEEE in singola precisione.<br />
Effettuiamo prima la conversione in base 2:<br />
Per la parte intera:<br />
Per la parte decimale:<br />
1 0 1 x 2 .0 × 2 = 0.0<br />
5 2 1 x 0<br />
.75 × 2 = 1.50 x −1 = 1<br />
2 1 0 x 1<br />
.5 × 2 = 1.0 x −2 = 1<br />
Quin<strong>di</strong> 5.75 10 = 101.11 2 = 1.0111 × 2 2 .<br />
Memorizziamo ora il numero in singola precisione:<br />
Per l’esponente, essendo p = 2, si ha:<br />
(b + p) 10 = (127 + 2) 10 = 129 10 = 10000001 2<br />
Per la mantissa, m = 23 e si deve trascurare l’1 della normalizzazione, quin<strong>di</strong> memorizzeremo le cifre<br />
0111 e poi avremo tutti 0.<br />
0 1 1 1 0 0 0 ... 0 0 0 0 0 0 0 0 0 0<br />
Il segno è positivo, quin<strong>di</strong> s = 0<br />
Perciò la memorizzazione, considerati i bits per il segno, l’esponente e la mantissa è:<br />
0 1 0 0 0 0 0 0 1 0 1 1 1 0 ... 0 0 0 0 0<br />
}{{}<br />
s<br />
} {{ }<br />
esponente<br />
} {{ }<br />
manti ssa<br />
Consideriamo, ora, la rappresentazione dei numeri speciali.<br />
Per convenzione si pone uguale a 0 la rappresentazione che vede tutti zero sia nel segno, sia nell’esponente<br />
che nella mantissa (non <strong>di</strong>mentichiamo che il valore 1 della normalizzazione non è messo in memoria<br />
ma c’è e quin<strong>di</strong> non potremmo mai avere il valore 0, perciò lo si pone per convenzione).<br />
Per i valori ±∞ si considerano tutti 1 nello spazio de<strong>di</strong>cato all’esponente, tutti 0 nello spazio de<strong>di</strong>cato alla<br />
mantissa e 0 o 1 per il segno, a seconda che sia + o −∞.<br />
0 / 1 1 1 1 ... 1 1 0 0 0 ... 0 0<br />
}{{}<br />
s<br />
} {{ }<br />
esponente<br />
} {{ }<br />
mantissa<br />
I valori ±∞ si hanno se si fa una <strong>di</strong>visione per zero o si fa un calcolo che comporta overflow.<br />
Si ha invece il Not-a-Number (NaN) come risultato <strong>di</strong> operazioni non definite, come 0/0 o log0.<br />
A seconda della macchina si ha:<br />
NaNS, che produce un segnale <strong>di</strong> errore<br />
0 1 1 1 ... 1 1 0 1 1 ... 1 1<br />
}{{}<br />
s<br />
} {{ }<br />
esponente<br />
} {{ }<br />
mantissa<br />
NaNQ, con il quale il calcolo continua comunque...<br />
0 1 1 1 ... 1 1 1 0 0 ... 0 0<br />
}{{}<br />
s<br />
3.5 Precisione numerica<br />
} {{ }<br />
esponente<br />
} {{ }<br />
mantissa<br />
Un numero può avere una rappresentazione finita o infinita. Basti pensare al valore <strong>di</strong> π o a 2 in base 10.<br />
Abbiamo anche visto che un numero può avere rappresentazione finita in una base ma infinita in un’altra.<br />
Quando rappresentiamo un numero al calcolatore è possibile memorizzare solo un certo numero <strong>di</strong> cifre:<br />
in che modo lo esprimiamo<br />
26