std::abs(int), std::labs, std::llabs, std::imaxabs

< cpp‎ | numeric‎ | math
 
 
数值库
常用数学函数
数学特殊函数 (C++17)
数学常数 (C++20)
浮点环境 (C++11)
复数
数值数组
伪随机数生成
编译时有理数算术 (C++11)
数值算法
(C++17)
(C++17)
插值
(C++20)
(C++20)
通用数值运算
(C++11)
位操作
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
常用数学函数
函数
基本运算
abs(int)labsllabsimaxabs
(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)
(C++11)
(C++11)
(C++11)
(C++11)
宏常量
(C++11)(C++11)(C++11)(C++11)(C++11)
 
定义于头文件 <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>
(C++11 起)
(C++11 起)

计算整数的绝对值。若结果不能以返回类型表示则行为未定义。

若以满足 std::is_unsigned<X>::valuetrueX 类型参数调用 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 的每个元素
(函数模板)