std::abs(int), std::labs, std::llabs, std::imaxabs_C++中文网
位置:首页 > C++ 参考手册 >数值库 >常用数学函数 > std::abs(int), std::labs, std::llabs, std::imaxabs
| 定义于头文件 |
||
| 定义于头文件 |
(C++17 起) |
|
| int abs( int n ); |
||
| long abs( long n ); |
||
| long long abs( long long n ); |
(C++11 起) | |
| 定义于头文件 |
||
| long labs( long n ); |
||
| long long llabs( long long n ); |
(C++11 起) | |
| 定义于头文件 |
||
| std::intmax_t abs( std::intmax_t n ); |
(C++11 起) | |
| std::intmax_t imaxabs( std::intmax_t n ); |
(C++11 起) | |
计算整数的绝对值。若结果不能以返回类型表示则行为未定义。
参数
返回值
若可表示,则为 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); // 补码系统上是未定义行为 }
输出: