La rappresentazione che noi umani siamo abituati ad usare è quella in virgola fissa, che prevede di elencare a sinistra della virgola la parte intera, e a destra della virgola la parte decimale.
Esempi: 1.5 0.000123 12.01
Il computer invece utilizza una rappresentazione in virgola mobile, o anche detta notazione scientifica. In questa, si distinguono una mantissa e un esponente, e si usa la lettera E per separare le due cose. Il significato del numero è il seguente:
mantissa E esponente = mantissa * 10 esponente
.Esempi:
numero in virgola mobile 3E-4 -12E5 1.4E2
numero rappresentato 3*10-4 -12*10 4 1.4*102
numero in virgola fissa 0.0003 -120000 140
Un numero non intero può essere rappresentato in infiniti modi quando utilizziamo la notazione esponenziale:
− Es.
34.5 = 0.345 · 102 = 0.0345 · 103 = 345 · 10-1
Questo formato prende il nome di floating point (virgola mobile)
Essendo infinite le rappresentazioni è necessario sceglierne una di riferimento (rappresentazione normalizzata)
Rappresentazione numeri in virgola mobile
Nei numeri decimali possiamo ad es.
considerare come normalizzata la rappresentazione in cui la parte intera è formata da una sola cifra;
− es. 3.45 · 10
Possiamo quindi distinguere in numero
− le cifre significative (significando o mantissa)
− l’esponente da dare alla base
Rappresentazione numeri in virgola mobile
Nel nostro esempio:
3.45 · 101
Rappresentazione:
± M ⋅ B±E
Segno
Mantissa
Esponente
Base : implicita, non viene rappresentata
Più bits per mantissa: maggior accuratezza
Più bits per esponente: maggior intervallo
Forma
Arbitraria 363.4 • 10 ^34
Normalizzata 3.634 • 10^36
Un numero in virgola mobile può sempre essere scritto in modo che la mantissa abbia un valore assoluto minore di 1, e la prima cifra decimale maggiore di zero. In questo caso, si parla di notazione in virgola mobile normalizzata, e l‟esponente prende il nome di caratteristica (ma molto spesso capita che si eviti di fare questa precisazione parlando semplicemente di virgola mobile, mantissa ed esponente).
Esempi: 3E-4 12E5 1.4E2
virgola mobile normalizzata 0.3E-3 0.12E7 0.14E3
In genere, i reali sono rappresentati su più parole, poiché per essi è richiesta una precisione maggiore che per gli interi. Avendo a disposizione 4 byte, ad esempio, la ripartizione dei bit è come segue:
- Un bit per il segno (0 se positivo, 1 se negativo)
- 8 bit per la caratteristica (aumentata di 127, negativa se <127, positiva se >127)
- 23 bit per la mantissa (lo 0 e la virgola non sono rappresentati)