命名空间
变体
操作

std::signbit

来自 cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本操作
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数函数
(C++11)
(C++11)

(C++11)
(C++11)
幂函数
(C++11)
(C++11)
三角函数
双曲函数
(C++11)
(C++11)
(C++11)

误差和伽马函数
(C++11)
(C++11)
(C++11)
(C++11)
最近整数浮点运算
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮点操作函数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分类和比较
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
signbit
(C++11)
(C++11)
(C++11)
类型
(C++11)
(C++11)
(C++11)
宏常量
分类
(C++11)(C++11)(C++11)(C++11)(C++11)


 
定义在头文件 <cmath>
(1)
bool signbit( float num );

bool signbit( double num );

bool signbit( long double num );
(自 C++11 起)
(直至 C++23)
constexpr bool signbit( /* floating-point-type */ num );
(自 C++23 起)
定义在头文件 <cmath>
template< class Integer >
bool signbit( Integer num );
(A) (自 C++11 起)
(自 C++23 起为 constexpr)
1) 判断给定的浮点数 num 是否为负数。 库为所有 cv 非限定浮点类型提供了重载,作为参数 num 的类型。 (自 C++23 起)
A) 为所有整数类型提供额外的重载,这些类型被视为 double

内容

[编辑] 参数

num - 浮点或整数值

[编辑] 返回值

如果 num 为负数,则为 true,否则为 false

[编辑] 注释

此函数检测零、无穷大和 NaN 的符号位。 除了 std::copysign 之外,std::signbit 是检查 NaN 符号的两种便携方式之一。

额外的重载不需要完全按照 (A) 提供。 它们只需要足以确保对于其整数类型的参数 numstd::signbit(num)std::signbit(static_cast<double>(num)) 的效果相同。

[编辑] 示例

#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << std::boolalpha
              << "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
              << "signbit(-0.0) = " << std::signbit(-0.0) << '\n'
              << "signbit(+nan) = " << std::signbit(+NAN) << '\n'
              << "signbit(-nan) = " << std::signbit(-NAN) << '\n'
              << "signbit(+inf) = " << std::signbit(+INFINITY) << '\n'
              << "signbit(-inf) = " << std::signbit(-INFINITY) << '\n';
}

输出

signbit(+0.0) = false
signbit(-0.0) = true
signbit(+nan) = false
signbit(-nan) = true
signbit(+inf) = false
signbit(-inf) = true

[编辑] 另请参阅

浮点值的绝对值 (|x|)
(函数) [编辑]
(C++11)(C++11)(C++11)
复制浮点值的符号
(函数) [编辑]
C 文档 for signbit