Timeline
Chat
Prospettiva

NaN

simbolo di avvertimento Da Wikipedia, l'enciclopedia libera

Remove ads

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

Remove ads

NaN e virgola mobile

Riepilogo
Prospettiva

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 è un esempio (in real*4):

x11111111axxxxxxxxxxxxxxxxxxxxxx

Per il primo bit (che rappresenta il segno) non è previsto il valore. Se a=1 il numero è 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 è considerato diverso da qualunque numero, compreso se stesso: questo permette di verificare se il contenuto di una variabile è un NaN confrontandola con se stessa (x ≠ x implica che x è un NaN).

Nello standard corrente, ogni operazione eseguita su un NaN dà 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 più grande e più piccolo tra due operandi) danno preferenza ai numeri sugli NaN (ciò risulta utile nel caso di calcoli statistici su dati sparsi).

Remove ads

Note

Voci correlate

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads