signbit

From cppreference.com
< clrm; | numericlrm; | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
Exponential functions
(C99)
(C99)
(C99)
(C99)
Power functions
(C99)
(C99)
Trigonometric and hyperbolic functions
(C99)
(C99)
(C99)
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Nearest integer floating point operations
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
Floating point manipulation functions
(C99)(C99)
(C99)
(C99)
Classification
(C99)
(C99)
signbit
(C99)
Types
(C99)(C99)
Macro constants
Defined in header <math.h>
#define signbit(arg) /* implementation defined */
(since C99)

Determines if the given floating point number arg is negative. The macro returns an integral value.

Parameters

arg - floating point value

Return value

Nonzero integral value if arg is negative, 0 otherwise.

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.

Example

#include <stdio.h>
#include <math.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

References

  • 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)

See also

(C99)(C99)
computes absolute value of a floating-point value (|x|)
(function)
produces a value with the magnitude of a given value and the sign of another given value
(function)