std::abs(int), std::labs, std::llabs, std::imaxabs
来自cppreference.com
定义于头文件 <cstdlib>
|
||
定义于头文件 <cmath>
|
(C++17 起) |
|
int abs( int n ); |
||
long abs( long n ); |
||
long long abs( long long n ); |
(C++11 起) | |
定义于头文件 <cstdlib>
|
||
long labs( long n ); |
||
long long llabs( long long n ); |
(C++11 起) | |
定义于头文件 <cinttypes>
|
||
std::intmax_t abs( std::intmax_t n ); |
(C++11 起) | |
std::intmax_t imaxabs( std::intmax_t n ); |
(C++11 起) | |
计算整数的绝对值。若结果不能以返回类型表示则行为未定义。
若以满足 std::is_unsigned<X>::value 为 true 的 X 类型参数调用 std::abs ,且 X 不能以整数提升转换成 int ,则程序为病式。 |
(C++17 起) |
目录 |
[编辑] 参数
n | - | 整数值 |
[编辑] 返回值
若可表示,则为 n
的绝对值(即 |n|
)。
[编辑] 注意
补码系统中,最负值的绝对值在范围外,例如对于 32 位补码类型 int , INT_MIN 是 -2147483648 ,但本应有的结果 2147483648 大于 INT_MAX ,即 2147483647 。
[编辑] 示例
运行此代码
#include <iostream> #include <cstdlib> #include <climits> int main() { std::cout << "abs(+3) = " << std::abs(3) << '\n' << "abs(-3) = " << std::abs(-3) << '\n'; // std::cout << abs(INT_MIN)); // 补码系统上是未定义行为 }
输出:
abs(+3) = 3 abs(-3) = 3
[编辑] 参阅
浮点值的绝对值( |x| ) (函数) | |
返回复数的绝对值 (函数模板) | |
应用函数 std::abs 到 valarray 的每个元素 (函数模板) | |
abs, labs, llabs的 C 文档
|