Namensräume
Varianten
Aktionen

NAN

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
NANDEC_NAN
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
#define NAN /*implementierungsabhängig*/
(seit C99)

Das Makro NAN erweitert sich zu einem konstanten Ausdruck vom Typ float, der zu einem stillen "Not-a-Number" (QNaN) Wert ausgewertet wird. Wenn die Implementierung QNaNs nicht unterstützt, ist diese Makrokonstante nicht definiert.

Die Darstellung zur Ausgabe eines NaN ist implementierungsabhängig.

Inhalt

[bearbeiten] Anmerkungen

Es gibt viele verschiedene NaN-Werte, die sich durch ihre Payloads und ihre Vorzeichenbits unterscheiden. Der Inhalt der Payload und das Vorzeichenbit des durch das Makro NAN erzeugten NaNs sind implementierungsabhängig.

[bearbeiten] Beispiel

Zeigt die Darstellung zur Ausgabe eines NaN und das IEEE-Format.

#include <inttypes.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const double f = NAN;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

Mögliche Ausgabe

NAN:   nan 7ff8000000000000

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

[bearbeiten] Siehe auch

(C99)(C99)(C99)
gibt eine NaN (Not-a-Number) zurück
(Funktion) [bearbeiten]
(C99)
prüft, ob die gegebene Zahl NaN ist
(Funktionsmakro) [bearbeiten]