Note
È impossibile rappresentare con precisione un numero reale, possiamo rappresentare soltanto un valore simile utilizzando i numeri razionali.
È possibile valutare la precisione della rappresentazione rispetto al valore reale tramite l’utilizzo di errore assoluto e relativo:
Di seguito mostriamo due approcci per la rappresentazione di numeri reali.
Notazione a virgola fissa
Note
Nella notazione a virgola fissa è stabilito a priori il numero di cifre destinate alla parte intera e alla parte fissa.
La parte intera è data dal numero di valori interi rappresentabili, mentre la parte frazionaria è data dalla precisione che si vuole ottenere nella rappresentazione.
Se consideriamo una linea dei numeri discreta, la distanza tra valori è data da , dove è il numero di bit dati alla parte frazionaria.
In questa notazione l’errore assoluto è costante, mentre l’errore relativo decresce al crescere che si vuole rappresentare.
Conversione da base a base frazionaria
Per convertire da base base si usa la seguente formula:
Dove è il numero di bit dati alla parte frazionaria, è il numero di bit totali, è il numero della cifra partendo dalla parte meno significativa, e è la base in cui convertire.
Conversione da base a base frazionaria
Per convertire un numero razionale da base a base , si procede così:
- Si converte la parte intera con divisioni successive per .
- Si converte la parte frazionaria moltiplicando ripetutamente per e prendendo la parte intera ad ogni passo.
- Se un resto si ripete, la parte frazionaria è periodica.
Notazione a virgola mobile
Note
La notazione a virgola mobile ci permettere di creare un compromesso tra la dimensione dei valori e la loro precisione permettendo di spostare la virgola. Per ottenere questo effetto si utilizza la notazione scientifica:
Abbiamo quindi:
Il bit del segno si comporta come in notazione modulo segno, mentre l’esponente è shiftato di metà del suo valore meno uno ().
In notazione scientifica un numero è detto normalizzato quando: , però in base binaria abbiamo solo una cifra che non è zero, quindi dalla mantissa omettiamo la parte intera.
In questa notazione l’errore relativo è costante mentre l’errore assoluto cresce al crescere del valore che si vuole rappresentare.
Per stabilire il numero di cifre dedicate a ogni parte utilizziamo lo standard IEEE 754, secondo il quale esiste la rappresentazione a virgola mobile a singola precisione (float) e a doppia precisione (double).
Per rappresentare tali valori in modo coinciso solitamente si usa la base 16.
Quando la parte esponente è impostata tutta a significa che si vogliono esprimere dei valori speciali:
- : Dal bit del segno intendiamo o .
- : Non definito ().
Questi valori esistono per rappresentare il risultato di un operazione che ha dato come risultato un valore non rappresentabile, cioè al di fuori dal campo di rappresentabilità o dato da un operazione senza senso ().