signbit - cppreference.com (original) (raw)
| | | | | ----------------------------------------------------- | | ----------- | | #define signbit( arg ) /* implementation defined */ | | (since C99) |
Determines if the given floating-point number arg is negative. The macro returns an integral value.
[edit] Parameters
| arg | - | floating-point value |
|---|
[edit] Return value
Nonzero integral value if arg is negative, 0 otherwise.
[edit] Notes
This macro detects the sign bit of zeroes, infinities, and NaNs. Along with copysign, this macro is one of the only two portable ways to examine the sign of a NaN.
[edit] Example
#include <math.h> #include <stdio.h> int main(void) { printf("signbit(+0.0) = %d\n", signbit(+0.0)); printf("signbit(-0.0) = %d\n", signbit(-0.0)); }
Possible output:
signbit(+0.0) = 0 signbit(-0.0) = 128
[edit] References
C23 standard (ISO/IEC 9899:2024):
7.12.3.6 The signbit macro (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.12.3.6 The signbit macro (p: TBD)
C11 standard (ISO/IEC 9899:2011):
7.12.3.6 The signbit macro (p: 237)
C99 standard (ISO/IEC 9899:1999):
7.12.3.6 The signbit macro (p: 218)