Codifica di numeri reali

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ì:

  1. Si converte la parte intera con divisioni successive per .
  2. Si converte la parte frazionaria moltiplicando ripetutamente per e prendendo la parte intera ad ogni passo.
  3. 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 ().