table of contents
std::signbit(3) | C++ Standard Libary | std::signbit(3) |
NAME¶
std::signbit - std::signbit
Synopsis¶
Defined in header <cmath>
bool signbit( float num );
(since C++11)
bool signbit( double num ); (until C++23)
bool signbit( long double num );
constexpr bool signbit( /* floating-point-type */ (1) (since C++23)
num );
Additional overloads
Defined in header <cmath>
template< class Integer > (A) (since C++11)
bool signbit( Integer num ); (constexpr since C++23)
1) Determines if the given floating point number num 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.
Parameters¶
num - floating-point or integer value
Return value¶
true if num is negative, false otherwise.
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.
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)).
Example¶
// Run this code
#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';
}
Output:¶
signbit(+0.0) = false
signbit(-0.0) = true
signbit(+nan) = false
signbit(-nan) = true
signbit(+inf) = false
signbit(-inf) = true
See also¶
abs(float)
fabs
fabsf absolute value of a floating point value (\(\small{|x|}\)|x|)
fabsl (function)
(C++11)
(C++11)
copysign
copysignf
copysignl copies the sign of a floating point value
(C++11) (function)
(C++11)
(C++11)
C documentation for
signbit
2024.06.10 | http://cppreference.com |