Das Kefk Network Wiki befindet sich im Testbetrieb.
NaN
Aus Kefk.
NaN (engl. Not a Number) bedeutet "keine Zahl". Es handelt sich hierbei um einen speziellen Wert bestimmter Darstellungen von Gleitkommazahlen auf dem Computer, der als Ergebnis einer ungültigen Rechenoperation zurückgegeben wird. Insbesondere haben die heute weit verbreiteten Gleitkommadarstellungen nach IEEE 754 bzw. IEC 559 NaNs.
Als Ergebnis einer Berechnung wird immer dann ein NaN geliefert, wenn ein Ergebnis nach mehreren, sich widersprechenden Regeln berechnet werden könnte, keine reelle Zahl (oder eine der beiden Unendlichkeiten) ergäbe, oder bereits ein NaN als Argument an der Berechnung beteiligt ist.
Dabei ist +Inf (für Infinity = unendlich) eine Gleitkommazahl, die sowohl extrem große Zahlen als auch einen positiv unendlichen Wert repräsentiert. Daneben gibt es -Inf für einen negativ unendlichen Wert.
Beispiele:
- Die Berechnung der Quadratwurzel aus einer negativen Zahl liefert ein NaN.
- Die Berechnung von +Inf · (+0) lässt sich nach folgenden Regeln ausführen:
- Regel 1: +Inf · irgendeine-positive-Zahl ist gleich +Inf
- Regel 2: irgendeine-positive-Zahl · (+0) ist gleich +0
- +Inf · (+0) müsste also gleich +Inf und gleich +0 sein. Das ist ein Widerspruch. Deshalb wird als Ergebnis der Berechnung +Inf · (+0) ein NaN festgelegt.
- die Berechnung von +0/+0 lässt sich nach folgenden Regeln ausführen:
- Regel 1: +0 / irgendeine-positive-Zahl ist gleich +0
- Regel 2: irgendeine-positive-Zahl / +0 ist gleich +Inf
- Regel 3: x / x ist gleich 1 (für eine beliebige Zahl x)
- +0/+0 müsste also gleich +0, +Inf und gleich 1 sein. Das ist ein Widerspruch. Deshalb wird als Ergebnis der Berechnung +0/+0 ein NaN festgelegt. Analog gilt dies für -0/-0, +0/-0 und -0/+0.
- Die Division einer anderen Zahl durch +0 oder -0 liefert zumindest bei IEEE-konformen Implementierungen keine NaN, sondern den speziellen Wert +Inf bzw. -Inf.
Es gibt nicht nur einen NaN-Wert, sondern viele verschiedene. Der Standard IEEE 754 schreibt vor, dass zum 32-Bit-Gleitkommatyp SINGLE 223 NaNs gehören (das sind ungefähr 8 Millionen oder etwa 0,5 Promille aller SINGLE-Werte). Entsprechend gehören zum 64-Bit-Gleitkommattyp DOUBLE 252 NaNs (das sind ungefähr 4,5 Billiarden oder etwa 0,25 Promille aller DOUBLE-Werte). Welche dieser NaNs bei welcher Berechnung geliefert wird, legt der Standard IEEE 754 nicht fest.
Man unterscheidet zwischen quiet NaNs (qNaN) und signalling NaNs (sNaN). Für quiet NaNs liefern die meisten arithmetischen Operationen selber wiederum NaN zurück, wenn eines ihrer Argumente NaN ist. Der Gebrauch eines signalling NaN hingegen verursacht sofort einen Laufzeitfehler.
Vergleicht man ein NaN-wertiges Ergebnis mit sich selbst, dann besteht Ungleichheit.
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort NaN, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
