prof. Nunzio Brugaletta BIt WOrld

EnneBi - Computer Science
Avanti Indietro Inizio


Floating point

La rappresentazione in binario puro, così come si è trattata, va bene per numeri interi e non molto grandi: si pensi a quanti bit occorrerebbero per conservare in memoria la misura della distanza fra la terra e il sole o la massa di un elettrone. C'è da aggiungere che, nei casi elencati, si tratta di numeri molto grandi o molto piccoli ma che non hanno necessità di avere molte cifre di precisione. Per esempio il numero, scritto nella notazione scientifica, 12x10128 ha una grandezza di 128 cifre ma una precisione di 2 cifre.

In Informatica questo tipo di numeri vengono chiamati floating point (virgola mobile). Qualsiasi numero si può sempre esprimere come formato da una parte intera nulla e la prima cifra decimale diversa da zero: basta moltiplicare per una opportuna potenza del 10. Per esempio il numero 12,34 può essere espresso come 0,1234x102. Questa ultima viene chiamata forma normalizzata. L'esponente del 10 (2) viene chiamato caratteristica, la parte decimale viene chiamata mantissa.

Naturalmente in un computer si possono conservare solo stringhe binarie, ma qui per chiarire le proprietà e i limiti del formato floating point, si assume di conservare il numero in formato decimale. Questo non fa perdere di generalità a quanto si farà notare perché: rispetto alla rappresentazione, reale nel computer, del formato binario, cambiano soltanto i valori, ma le proprietà, essendo conseguenza del metodo, rimangono uguali.

Se si sceglie di rappresentare un numero floating point utilizzando 2 cifre sia per la caratteristica che per l'esponente, si potranno rappresentare i numeri da -0,99x1099 a +0,99x1099.

Il formato floating point è quanto di più vicino ai numeri reali matematici. Ci sono tuttavia delle grosse differenze:

Verso la fine degli anni '70 la IEEE (Institue of Electrical Electronics Engineers) istituì un comitato per la standardizzazione del formato floating point. I risultati furono le definizioni di due formati: singola precisione a 32 bit e doppia precisione a 64 bit con, rispettivamente, 23 e 52 cifre binarie di precisione.

formato floating point

La caratteristica è conservata con il sistema eccesso 27 ed eccesso 210, rispettivamente (l'esponente della potenza è espresso dalla quantità di bit meno una unità). Seguendo questo metodo, se si segue l'esempio, riportato prima, di utilizzare 5 bit:

In tutte e due i casi si trova lo stesso numero del sistema complemento a due, ma con il bit del segno invertito.

Lo standard IEEE definisce pure, per la risoluzione degli errori di overflow, una particolare registrazione (caratteristica con tutte cifre 1 e mantissa con tutte cifre 0) chiamata infinito macchina che segue le stesse regole della matematica: per esempio aggiunto ad un numero qualsiasi ritorna come risultato sé stesso.

Il formato floating point è utilizzato da C/C++ per le variabili di tipo float (singola precisione) e double (doppia precisione).

L'elaboratore è provvisto di hardware per l'aritmetica binaria e l'aritmetica floating point.



Avanti Indietro Inizio

http://ennebi.solira.org ennebi@solira.org