std::numeric_limits::signaling_NaN
Aus cppreference.com
< cpp | types | numeric limits
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
static T signaling_NaN() |
(bis C + +11) | |
static constexpr T signaling_NaN() |
(seit C++11) | |
Gibt den besonderen Wert "Signalisierung not-a-number", wie von der Fließkomma-Typ
T
vertreten. Nur sinnvoll, wenn std::numeric_limits<T>::has_signaling_NaN == true. In IEEE 754, die häufigste Binärdarstellung Gleitkommazahlen, repräsentiert jeder Wert mit allen Bits des Exponenten eingestellten und mindestens ein Bit des Satzes einen Bruchteil NaN. Es wird durch die Implementierung definiert, welche Werte der Fraktion ruhig oder Signalisierung NaNs darstellen, und ob das Vorzeichenbit ist sinnvoll .Original:
Returns the special value "signaling not-a-number", as represented by the floating-point type
T
. Only meaningful if std::numeric_limits<T>::has_signaling_NaN == true. In IEEE 754, the most common binary representation of floating-point numbers, any value with all bits of the exponent set and at least one bit of the fraction set represents a NaN. It is implementation-defined which values of the fraction represent quiet or signaling NaNs, and whether the sign bit is meaningful.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Inhaltsverzeichnis |
[Bearbeiten] Rückgabewert
T
|
std::numeric_limits<T>::quiet_NaN() |
/* non-specialized */ | T();
|
bool | false |
char | 0 |
signed char | 0 |
unsigned char | 0 |
wchar_t | 0 |
char16_t | 0 |
char32_t | 0 |
short | 0 |
unsigned short | 0 |
int | 0 |
unsigned int | 0 |
long | 0 |
unsigned long | 0 |
long long | 0 |
unsigned long long | 0 |
float | Implementierung definiert
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
double | Implementierung definiert
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
long double | Implementierung definiert
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[Bearbeiten] Ausnahmen
[Bearbeiten] Notes
Ein NaN nie vergleicht sich selbst gleich. Kopieren einer NaN kann nicht bewahren ihre Bit-Darstellung .
Original:
A NaN never compares equal to itself. Copying a NaN may not preserve its bit representation.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Wenn ein Signal NaN als Argument an einem arithmetischen Ausdruck verwendet wird, kann die entsprechende Floating-Point-Exception ausgelöst und die NaN wird "beruhigt", das heißt, der Ausdruck einer ruhigen NaN zurück .
Original:
When a signaling NaN is used as an argument to an arithmetic expression, the appropriate floating-point exception may be raised and the NaN is "quieted", that is, the expression returns a quiet NaN.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Beispiel
Veranschaulicht die Verwendung einer Signalisierung NaN um eine Floating-Point-Exception
Original:
Demonstrates the use of a signaling NaN to raise a floating-point exception
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <limits> #include <cfenv> #pragma STDC_FENV_ACCESS on void show_fe_exceptions() { int n = std::fetestexcept(FE_ALL_EXCEPT); if(n & FE_INVALID) std::cout << "FE_INVALID is raised\n"; else if(n == 0) std::cout << "no exceptions are raised\n"; std::feclearexcept(FE_ALL_EXCEPT); } int main() { double snan = std::numeric_limits<double>::signaling_NaN(); std::cout << "After sNaN was obtained "; show_fe_exceptions(); double qnan = snan * 2.0; std::cout << "After sNaN was multiplied by 2 "; show_fe_exceptions(); double qnan2 = qnan * 2.0; std::cout << "After the quieted NaN was multiplied by 2 "; show_fe_exceptions(); std::cout << "The result is " << qnan2 << '\n'; }
Output:
After sNaN was obtained no exceptions are raised After sNaN was multiplied by 2 FE_INVALID is raised After the quieted NaN was multiplied by 2 no exceptions are raised The result is nan
[Bearbeiten] Siehe auch
[statisch] |
identifiziert Floating-Point-Typen, die den besonderen Wert "Signalisierung not-a-number" (NaN) darstellen kann Original: identifies floating-point types that can represent the special value "signaling not-a-number" (NaN) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public static Mitglied konstanten) |
[statisch] |
gibt einen ruhigen NaN Wert der gegebenen Fließkomma-Typ Original: returns a quiet NaN value of the given floating-point type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public static Elementfunktion) |