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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.