1. Introduzione ai Numeri Reali nei Calcolatori
Mentre i numeri interi possono essere rappresentati in modo esatto tramite codifiche binarie pure o in complemento a 2, i numeri reali (frazionari o con parte decimale) richiedono una notazione speciale detta virgola mobile (floating point) per poter gestire un intervallo dinamico estremamente ampio con un numero limitato di bit.
2. Notazione Scientifica e Normalizzazione
In un sistema posizionale in base 2, un numero reale X viene espresso nella forma standardizzata:
Dove il numero è composto da Segno (±), Mantissa (M) normalizzata con bit intero sottinteso pari a 1, ed Esponente (E).
3. Lo Standard IEEE 754 (Precisione Singola - 32 bit)
Il formato a 32 bit (Single Precision) stabilito dall'IEEE 754 suddivide i bit nel modo seguente:
- Bit di Segno (S): 1 bit (bit 31). 0 indica un numero positivo, 1 un numero negativo.
- Esponente Distorto (E): 8 bit (da bit 30 a bit 23). Per consentire di rappresentare sia esponenti positivi che negativi senza un ulteriore bit di segno, si usa una distorsione (bias) pari a 127 (ovvero Ememorizzato = Ereale + 127).
- Mantissa / Frazione (M): 23 bit (da bit 22 a bit 0). Per convenzione nei numeri normalizzati si assume un bit intero implicito pari a 1. prima della virgola binaria.
📝 Esempio Guidato: Conversione in IEEE 754
- Convertire la parte intera e frazionaria in binario (es. +5.7510 = 101.112).
- Normalizzare spostando la virgola: 1.01112 × 22.
- Calcolare l'esponente con bias: 2 + 127 = 12910 = 100000012.
- Estrarre la mantissa: 0111 riempita con zeri a 23 bit.