18.01.2015 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!