Namespaces
Variants

std:: signbit

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
signbit
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definiert in Header <cmath>
(1)
bool signbit ( float num ) ;

bool signbit ( double num ) ;

bool signbit ( long double num ) ;
(seit C++11)
(bis C++23)
constexpr bool signbit ( /*floating-point-type*/ num ) ;
(seit C++23)
SIMD-Überladung (seit C++26)
Definiert in Header <simd>
template < /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/ < V > :: mask_type

signbit ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
bool signbit ( Integer num ) ;
(A) (seit C++11)
(constexpr seit C++23)
1) Bestimmt, ob die gegebene Gleitkommazahl num negativ ist. Die Bibliothek stellt Überladungen für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters num bereit. (seit C++23)
S) Die SIMD-Überladung führt eine elementweise std::signbit auf v_num aus.
(Siehe math-floating-point und deduced-simd-t für deren Definitionen.)
(seit C++26)
A) Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als double behandelt werden.

Inhaltsverzeichnis

Parameter

num - Gleitkomma- oder Ganzzahlwert
v_num - ein datenparalleles Objekt einer std::basic_simd Spezialisierung, dessen Elementtyp ein Gleitkommatyp ist

Rückgabewert

1) true falls num negativ ist, false andernfalls.
S) Ein datenparalleles Maskenobjekt, bei dem das i te Element gleich true ist, falls v_num [ i ] negativ ist, oder false andernfalls, für alle i im Bereich [ 0 , v_num. size ( ) ) .

Hinweise

Diese Funktion erkennt das Vorzeichenbit von Nullen, Unendlichkeiten und NaNs. Zusammen mit std::copysign ist std::signbit eine der einzigen zwei portablen Methoden, um das Vorzeichen eines NaN zu untersuchen.

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp, std :: signbit ( num ) dieselbe Wirkung hat wie std :: signbit ( static_cast < double > ( num ) ) .

Beispiel

#include <cmath>
#include <iostream>
int main()
{
    std::cout << std::boolalpha
              << "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
              << "signbit(-0.0) = " << std::signbit(-0.0) << '\n'
              << "signbit(+nan) = " << std::signbit(+NAN) << '\n'
              << "signbit(-nan) = " << std::signbit(-NAN) << '\n'
              << "signbit(+inf) = " << std::signbit(+INFINITY) << '\n'
              << "signbit(-inf) = " << std::signbit(-INFINITY) << '\n';
}

Ausgabe:

signbit(+0.0) = false
signbit(-0.0) = true
signbit(+nan) = false
signbit(-nan) = true
signbit(+inf) = false
signbit(-inf) = true

Siehe auch

Absolutwert eines Gleitkommawerts ( |x| )
(Funktion)
(C++11) (C++11) (C++11)
kopiert das Vorzeichen eines Gleitkommawerts
(Funktion)
C-Dokumentation für signbit