Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/numeric/math/signbit"

From cppreference.com
< cpp‎ | numeric‎ | math
(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.
  
===Examples===
+
===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 );

bool signbit( long 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

#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

absolute value of a floating point value (|x|)
(function) [edit]
(C++11)(C++11)(C++11)
copies the sign of a floating point value
(function) [edit]
C documentation for signbit