signbit

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角及双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
窄化运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
(C99)
(C99)
signbit
(C99)
(C23)
类型
宏常量
 
定义于头文件 <math.h>
#define signbit(arg) /* implementation defined */
(C99 起)

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

参数

arg - 浮点值

返回值

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

注意

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

示例

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

可能的输出:

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

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.3.6 The signbit macro (p: 237)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.3.6 The signbit macro (p: 218)

参阅

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