vale1411
Genius
3 min. di lettura
Vota

Concetti Chiave

  • Il sistema floating-point consente una gamma di valori esprimibili indipendente dal numero di cifre significative, tramite la notazione n = f * 10^e.
  • La precisione e la gamma di valori dei numeri floating-point sono determinate dalla frazione (mantissa) e dall'esponente, ma non tutti i numeri reali possono essere rappresentati con precisione.
  • Lo standard IEEE, sviluppato negli anni '80, ha fissato la rappresentazione dei numeri floating-point, introducendo formati come singola, doppia e precisione estesa.
  • La forma normalizzata nei numeri floating-point prevede una mantissa binaria con 1 implicito, mentre l'infinito e lo zero hanno rappresentazioni specifiche.
  • La forma non normalizzata permette di rappresentare numeri più piccoli ma comporta una perdita di cifre significative, utilizzando esponenti con tutti i bit a zero.

Numeri floating-point

Sistema floating-point = notazione in cui la gamma di valori esprimibili è indipendente dal numero di cifre significative
n = f * 10^e dove f = frazione/mantissa (determina la precisione) ed e = esponente (determina la gamma dei valori)
La notazione floating-point consente più rappresentazioni per uno stesso numero, perciò è stata definita una codifica standard (o normalizzata) in cui i valori di f sono compresi tra 0.1 e 1 (0.1 ≤ f Dopo aver fissate le caratteristiche di un numero floating-point (numero di cifre della mantissa e dell’esponente) sono determinati anche gli intervalli di numeri rappresentabili, ma non tutti i numeri reali appartenenti all’insieme di numeri rappresentabili possono essere espressi correttamente tramite un floating-point (es. periodici).
Quando il risultato non si può esprimere correttamente viene usato il numero rappresentabile più vicino, in questo caso si commette un errore di arrotondamento
Lo spazio tra numeri floating-point esprimibili non è costante e cresce al crescere dei valori rappresentabili, ma l’errore relativo rimane costante, cioè l’errore di arrotondamento espresso in funzione del valore rappresentato. Per aumentare la densità dei numeri è necessario aumentare il numero di cifre della mantissa.

Fino agli anni 80 con lo standard IEEE la rappresentazione dei floating-point non era fissata. Questo standard è stato studiato dal Prof. William Kahan, che prevede tre formati: singola precisione, doppia precisione, precisione estesa.

Lo standard prevede di rappresentare i numeri in:
-- forma normalizzata:
- la mantissa binaria deve presentare un 1 a sinistra della virgola binaria perciò queste non vengono memorizzate poiché considerate implicite.
- per evitare confusione con una frazione tradizionale la combinazione di 1 implicito, virgola e 23/52 cifre significative è chiamato significando (non frazione o mantissa)
- ha e>0 e 1≤s - lo 0 non è rappresentabile con questo modo, quindi tutti i bit di f ed e posti a 0
- l’infinito ∞ è rappresentato quando tutti i bit dell’esponente sono 1
- non vengono sfruttati appieno i valori rappresentabili con 32 e 64 bit
- il numero più piccolo rappresentabile con 32 bit è 1.0x2-126
-- forma non normalizzata:
- può rappresentare valori in singola precisione minori di 2-126 fino a 2-150
- tutti i bit dell’esponente sono posti a 0 (configurazione che indica forma de normalizzata)
- il bit della mantissa a sinistra della virgola è imposto implicitamente a 0
- il numero più piccolo rappresentabile è composto da mantissa con tutti 0 eccetto il bit più a destra
- questa rappresentazione comporta una progressiva perdita di cifre significative

Domande da interrogazione

  1. Qual è la funzione della notazione floating-point?
  2. La notazione floating-point permette di esprimere una gamma di valori indipendente dal numero di cifre significative, utilizzando una frazione (mantissa) e un esponente.

  3. Quali sono le caratteristiche principali dello standard IEEE per i numeri floating-point?
  4. Lo standard IEEE, sviluppato dal Prof. William Kahan, prevede tre formati (singola precisione, doppia precisione, precisione estesa) e stabilisce regole per la rappresentazione normalizzata e non normalizzata dei numeri.

  5. Come viene rappresentato lo zero e l'infinito nella forma normalizzata?
  6. Nella forma normalizzata, lo zero non è rappresentabile, mentre l'infinito è rappresentato quando tutti i bit dell'esponente sono impostati a 1.

  7. Qual è la differenza tra forma normalizzata e non normalizzata?
  8. La forma normalizzata richiede un 1 implicito a sinistra della virgola binaria, mentre la forma non normalizzata può rappresentare valori più piccoli con l'esponente a 0 e comporta una perdita di cifre significative.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community