NaN

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In informatica , NaN e un simbolo di avvertimento indicante che il risultato di un'operazione (numerica) e stata ottenuta eseguendola su operandi non validi (specialmente in calcoli in virgola mobile ). Il suo nome e l'acronimo di Not a Number (trad. "non e un numero"). Esempi sono la divisione per zero o la radice quadrata di un numero negativo, a cui le FPU assegnano come risultato "NaN".

NaN e virgola mobile [ modifica | modifica wikitesto ]

Nel calcolo in virgola mobile "NaN" e "infinito" non sono la stessa cosa, anche se in questo contesto vengono gestiti entrambi come casi particolari nella rappresentazione dei numeri reali e nelle operazioni. Un'operazione non valida si differenzia inoltre sia dall' overflow che dall' underflow aritmetico (i quali danno come risultato rispettivamente un infinito e un numero denormalizzato o uno zero).

Nello standard per il calcolo in virgola mobile IEEE 754 i NaN sono rappresentati con il campo dell'esponente riempito di "1" e un numero diverso da zero nel campo della mantissa (il campo zero corrisponde ad infinito). Questo e un esempio (in real*4):

x11111111axxxxxxxxxxxxxxxxxxxxxx

Per il primo bit (che rappresenta il segno) non e previsto il valore. Se a=1 il numero e un quiet NaN ("NaN silenzioso"), mentre se a=0 si ha un signalling NaN ("NaN segnalatore"). I primi possono essere il risultato di operazioni aritmetiche, i secondi no e devono essere generati assegnando la rappresentazione interna [1] .

Nei test ogni NaN e considerato diverso da qualunque numero, compreso se stesso: questo permette di verificare se il contenuto di una variabile e un NaN confrontandola con se stessa (x ≠ x implica che x e un NaN).

Nello standard corrente , ogni operazione eseguita su un NaN da come risultato un altro NaN, inficiando tutta una serie di calcoli in caso di un errore a monte che dia questo risultato. Nella revisione (attualmente proposta) IEEE 754r , ci sono due eccezioni: le funzioni maxnum e minimum (che restituiscono il numero rispettivamente piu grande e piu piccolo tra due operandi) danno preferenza ai numeri sugli NaN (cio risulta utile nel caso di calcoli statistici su dati sparsi).

Note [ modifica | modifica wikitesto ]

  1. ^ AIX XL FORTRAN Compiler/6000 User's Guide .

Voci correlate [ modifica | modifica wikitesto ]

Collegamenti esterni [ modifica | modifica wikitesto ]

  Portale Informatica : accedi alle voci di Wikipedia che trattano di informatica