Not a number in C

Gast #5086656
Lesenswert?

Hallo Forum, ich sitze gerade zu hause rum und habe mein C Buch nicht 
dabei. Nun fällt mich gerade die Frage an, ob es in C beim float nur 
"Not a number" gibt, sondern ob man auch plus und minus unendlich 
unterscheiden kann.
Wie kann ich auf nan  testen?

Mein zweiter Thread wäre nun:
Kann ich mit sgn plus, minus und Null unterscheiden?
Sorry hab mein Buch nicht dabei...
#5086685
Lesenswert?

Stranero schrieb:
> Wie kann ich auf nan  testen?

IEEE-754-NaNs werden dargestellt, indem das Exponenten-Feld mit Einsen 
gefüllt wird (wie bei der Darstellung von Unendlichkeit) und irgendeine 
Zahl ungleich Null in den Signifikant geschrieben wird (im Unterschied 
zu Unendlich). Diese Darstellung erlaubt es, viele verschiedene 
NaN-Werte zu definieren, die sich durch die Bits des Signifikanten 
unterscheiden lassen. Der Standard ignoriert das Vorzeichenbit.
....
Nach 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} x sind, bei denen der Vergleich x ≠ x {\displaystyle 
x\neq x} x\neq x 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 für eine Gleitkommavariable value die beiden 
folgenden Abfragen äquivalent sind:

  if ( isnan( value ) ) {
    // value ist NaN, Fehlerbehandlung ...
  }

  if ( value != value ) {
    // value ist NaN, Fehlerbehandlung ...
  }


Steht hier: https://de.wikipedia.org/wiki/NaN

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren