signbit

< c‎ | numeric‎ | math
在标头 <math.h> 定义
#define signbit( arg ) /* 由实现定义 */
(C99 起)

确定给定的浮点数 arg 是否为负。该宏返回整数值。

参数

arg - 浮点值

返回值

arg 为负,则返回非零整数值,否则返回 0

注解

此宏检测零、无穷大和 NaN 的符号。这个宏和 copysign 是检验 NaN 符号的唯二可移植方式。

示例

#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));
}

可能的输出:

signbit(+0.0) = 0
signbit(-0.0) = 128

引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.12.3.6 The signbit macro (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12.3.6 The signbit macro (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.3.6 The signbit macro (第 237 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.3.6 The signbit macro (第 218 页)

参阅

(C99)(C99)
计算浮点值的绝对值(|x|
(函数)
(C99)(C99)(C99)
从一个给定值的绝对值和另一个给定值的符号产生值
(函数)