Difference between revisions of "cpp/numeric/math/signbit"
From cppreference.com
(templatize) |
m (s/Examples/Example) |
||
Line 7: | Line 7: | ||
This function detects the sign bit of zeroes, infinities, and NaNs. Along with {{lc|std::copysign}}, std::signbit is one of the only two portable ways to examine the sign of a NaN. | This function detects the sign bit of zeroes, infinities, and NaNs. Along with {{lc|std::copysign}}, std::signbit is one of the only two portable ways to examine the sign of a NaN. | ||
− | === | + | ===Example=== |
{{example | {{example | ||
|code= | |code= |
Revision as of 07:43, 3 November 2020
Defined in header <cmath>
|
||
(1) | ||
bool signbit( float num ); bool signbit( double num ); |
(since C++11) (until C++23) |
|
constexpr bool signbit( /* floating-point-type */ num ); |
(since C++23) | |
Defined in header <cmath>
|
||
template< class Integer > bool signbit( Integer num ); |
(A) | (since C++11) (constexpr since C++23) |
1) Determines if the given floating point number
arg
is negative. The library provides overloads for all cv-unqualified floating-point types as the type of the parameter num.(since C++23)A) Additional overloads are provided for all integer types, which are treated as double.
Contents |
Parameters
num | - | floating-point or integer value |
Return value
true if num is negative, false otherwise.
Notes
The additional overloads are not required to be provided exactly as (A). They only need to be sufficient to ensure that for their argument num of integer type, std::signbit(num) has the same effect as std::signbit(static_cast<double>(num)).
Notes
This function detects the sign bit of zeroes, infinities, and NaNs. Along with std::copysign, std::signbit is one of the only two portable ways to examine the sign of a NaN.
Example
Run this code
#include <iostream> #include <cmath> int main() { std::cout << std::boolalpha << "signbit(+0.0) = " << std::signbit(+0.0) << '\n' << "signbit(-0.0) = " << std::signbit(-0.0) << '\n'; }
Output:
signbit(+0.0) = false signbit(-0.0) = true
See also
(C++11)(C++11) |
absolute value of a floating point value (|x|) (function) |
(C++11)(C++11)(C++11) |
copies the sign of a floating point value (function) |
C documentation for signbit
|