Wikipedia: Notazione scientifica – Virgola mobile – IEEE754
Virgola fissa
Con la notazione in virgola fissa i numeri sono sempre in colonna!
Il numero di cifre intere e di cifre decimali è fisso (anche la posizione del separatore, la virgola)
7 824 = +00 007 824,000 000 000
-78,24 = -00 000 078,240 000 000
Nell’esempio il segno è seguito da 8 cifre intere, la virgola e 9 cifre decimali.
Virgola mobile
I numeri in virgola mobile, floating point, rappresentano dei numeri razionali, approssimazione dei numeri reali.
A differenza della notazione scientifica, le cifre rappresentano un numero tra 0 e 1, con la cifra più significativa diversa da 0
7 824 = 0,782 4 · 10^4
La mantissa è 0,7824 e l’esponente è 4.
Standard IEEE 754
Lo standard utilizzato dai computer utilizza il bit più significativo per il segno, un certo numero di bit per l’esponente e i rimanenti per la mantissa
| byte | bit | bit segno | bit esponente | bit mantissa | |||
|---|---|---|---|---|---|---|---|
| 4 | 32 | 1 | 31° | 8 | 30° … 23° | 23 | 22° … 0° |
| 8 | 64 | 1 | 63° | 11 | 62° … 52° | 52 | 51° … 0° |
Sia l’esponente che la mantissa prevedono delle ottimizzazioni
- L’esponente è in eccesso di 127 rispetto al valore originale.
- La mantissa rappresenta le cifre significative del numero in base 2 ma siccome il primo bit è sempre 1 allora viene omesso!
Alcune combinazioni hanno un significato speciale
| Segno | Esponente | Mantissa | ? |
|---|---|---|---|
| 1 | 255 | 0 | +infinito |
| 0 | 255 | 0 | -infinito |
| 255 | <> 0 | not a number | |
| 1/0 | 254 | … | E = +127 |
| … | … | … | … |
| 1/0 | 1 | … | E = -126 |
| 1 | 0 | 0 | -0 |
| 0 | 0 | 0 | +0 |
Libro di testo: pagine 34
43,6875 = 43 + 0,6875 = (101011,1011)2 = 1,010111011x25
- segno =
0 - esponente = 5+127 = 132 =
(10000100)2 - mantissa =
01011101100000000000000
0 10000100 01011101100000000000000 = 01000010 00101110 11000000 00000000
Libro di testo: pagine 35
-11,375 = -(11 + 0,375) = -(1011,011)2 = -1,011011x23
- segno:
1 - esponente: 3+127 = 130 =
(10000010)2 - mantissa:
01101100000000000000000
1 10000010 01101100000000000000000 = 11000001 00110110 00000000 00000000
Libro di testo: pagine 36
-49,625 = -(49 + 0,625) = -(110001,101)2 = -1,10001101x25
- segno:
1 - esponente: 5+127 = 132 =
(10000100)2 - mantissa:
10001101000000000000000
1 10000010 01101100000000000000000 = 11000001 00110110 00000000 00000000
Wikipedia 1
-118,5 = -(118 + 0,5) = -(1110110,1)2 = -1,1101101x26
- segno:
1 - esponente: 6+127 = 133 =
(10000101)2 - mantissa:
11011010000000000000000
1 10000101 11011010000000000000000 = 11000010 11101101 00000000 00000000
Wikipedia 2
-5,828125 = -(5 + 0,828125) = -(101,110101)2 = -1,01110101x22
- segno:
1 - esponente: 2+127 = 129 =
(10000001)2 - mantissa:
01110101000000000000000
1 10000001 01110101000000000000000 = 11000000 10111010 100000000 00000000