www.wikidata.de-de.nina.az
Dieser Artikel beschaftigt sich mit einem speziellen Wert von Gleitkommazahlen Zu anderen Bedeutungen des Wortes Nan siehe Nan Begriffsklarung In der Informationstechnik steht NaN englisch fur Not a Number Keine Zahl fur einen numerischen Datentyp Wert der einem undefinierten oder nicht darstellbaren Wert entspricht und kommt insbesondere bei Gleitkommazahlberechnungen vor NaN erlangte systematische Verwendung mit der Einfuhrung des IEEE 754 Gleitkommazahlenformats im Jahr 1985 in dem auch andere nicht finite Grossen wie Unendlichkeit symbolisch dargestellt werden Es werden zwei verschiedene NaN Arten verwendet stille NaNs engl quiet NaN und anzeigende NaNs engl signaling NaN Anzeigende NaNs werden Variablen zugewiesen die nicht explizit initialisiert wurden Stille NaNs hingegen werden als Ergebnis von eigentlich ungultigen Operationen eingesetzt 1 Beispielsweise ist das Ergebnis von 0 0 displaystyle tfrac 0 0 als reelle Zahl undefiniert und wird mit NaN dargestellt Ein anderes Beispiel ist das Ergebnis der Quadratwurzel einer negativen Zahl Es ergibt sich eine imaginare Zahl die nicht als reelle Gleitkommazahl darstellbar ist und daher durch NaN ersetzt wird Ausserdem erzeugt jede mathematische Operation von der ein Argument NaN ist ebenfalls NaN als Ergebnis NaN wird des Weiteren als einfacher Platzhalter verwendet Inhaltsverzeichnis 1 Gleitkommazahlen 2 Entstehung von NaNs 3 Erkennung und Abfangen von NaNs 4 EinzelnachweiseGleitkommazahlen BearbeitenBei Gleitkommazahlberechnungen entspricht NaN nicht der Unendlichkeit wenngleich beides Sonderfalle sowohl in der Wertdarstellung als auch bezuglich der moglichen Gleitkommaoperationen sind Eine ungultige Operation entspricht nicht einem arithmetischen Uberlauf der Unendlich zuruckgeben konnte oder einem arithmetischen Unterlauf der die kleinste normalisierte Zahl eine denormalisierte Zahl oder Null zuruckgeben wurde IEEE 754 NaNs werden dargestellt indem das Exponenten Feld mit Einsen gefullt wird wie bei der Darstellung von Unendlichkeit und irgendeine Zahl ungleich Null in den Signifikant geschrieben wird im Unterschied zu Unendlich 2 3 Diese Darstellung erlaubt es viele verschiedene NaN Werte zu definieren die sich durch die Bits des Signifikanten unterscheiden lassen Der Standard ignoriert das Vorzeichenbit 2 Ein bitweises Beispiel Eine IEEE 754 Gleitkommazahl mit einfacher Genauigkeit 32 Bit die NaN darstellt ware s111 1111 1axx xxxx xxxx xxxx xxxx xxxx wobei s dem bei NaNs meistens ignorierten Vorzeichen entspricht a den NaN Typ bestimmt still oder anzeigend und x fur die Nutzdaten steht die auch meistens ignoriert werden Ist a 1 so handelt es sich um eine stille NaN sind dagegen a 0 und die Nutzdaten ungleich Null so ist es eine anzeigende NaN 3 Entstehung von NaNs BearbeitenNaNs entstehen auf verschiedene Arten Operationen deren Operanden mindestens einmal ein NaN enthalten Nichtdeterminierte Formen Die Division 0 0 und Die Multiplikation 0 und 0 Die Additionen und die dazu aquivalenten Subtraktionen Der Standard verfugt uber unterschiedliche Funktionen zur Potenz Rechnung Die Standard Funktion pow und die Ganzzahl Exponent Funktion pown definieren 00 1 und 0 als 1 Reelle Operationen mit komplexem Ergebnis zum Beispiel Die Quadratwurzel einer negativen Zahl Den Logarithmus einer negativen Zahl Der inverse Sinus oder Kosinus einer Zahl die kleiner 1 oder grosser 1 ist Der inverse hyperbolische Tangens einer Zahl die kleiner gleich 1 oder grosser gleich 1 ist Der inverse hyperbolische Kosinus einer Zahl die kleiner als 1 ist NaNs konnen auch explizit Variablen zugewiesen werden z B typischerweise als Reprasentation eines fehlenden Wertes Bevor es den IEEE Standard gab nutzten Programmierer haufig bestimmte Werte wie 99999999 um undefinierte oder fehlende Werte darzustellen es kam jedoch regelmassig zu Problemen da diese Werte nicht einheitlich gewahlt wurden sodass keine Garantie bestand dass die Spezialwerte von allen Programmierern konsistent und korrekt verwendet wurden Erkennung und Abfangen von NaNs BearbeitenNach einer Empfehlung des IEEE Standards sollte es eine Funktion isnan geben mit der ein NaN erkannt werden kann Da NaNs die einzigen Zahlen x displaystyle x nbsp sind bei denen der Vergleich x x displaystyle x neq x nbsp wahr ist kann man auch diesen Vergleich zur Erkennung von NaNs verwenden 2 3 In C ist die Funktion isnan in math h in Delphi Lazarus in der Unit Math deklariert so dass fur eine Gleitkommavariable value die beiden folgenden Abfragen aquivalent sind if isnan value value ist NaN Fehlerbehandlung if value value value ist NaN Fehlerbehandlung Einzelnachweise Bearbeiten Gerhard Goos Vorlesungen uber Informatik Band 1 Grundlagen und funktionales Programmieren Springer Berlin Heidelberg 1995 1997 ISBN 978 3 540 62880 4 S 365 a b c http 754r ucbtest org standards 754 pdf 1 2 Vorlage Toter Link 754r ucbtest org Seite nicht mehr abrufbar festgestellt im Mai 2019 Suche in Webarchiven a b c http www validlab com goldberg paper pdf Abgerufen von https de wikipedia org w index php title NaN amp oldid 234274382