命名空间
变体
操作

abs, labs, llabs, imaxabs

来自 cppreference.cn
< c‎ | 数值‎ | 数学
 
 
 
常用数学函数
函数
基本操作
abslabsllabsimaxabs
(C99)(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指数函数
(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)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子与量子指数
十进制重新编码函数
总序和载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差函数和伽马函数
(C99)
(C99)
(C99)
(C99)
类型
宏常量
特殊浮点值
(C99)(C23)
参数和返回值
错误处理
快速操作指示符
 
在头文件 <stdlib.h> 中定义
int        abs( int n );
long       labs( long n );
long long llabs( long long n );
(C99 起)
在头文件 <inttypes.h> 中定义
intmax_t imaxabs( intmax_t n );
(C99 起)

计算整数的绝对值。如果结果无法用返回类型表示,则行为未定义。

目录

[编辑] 参数

n - 整数值

[编辑] 返回值

如果可表示,则为 n 的绝对值(即 |n|)。

[编辑] 注意

在 2 的补码系统中,最负值的绝对值超出范围,例如对于 32 位 2 的补码类型 intINT_MIN-2147483648,但本应得到的结果 2147483648 大于 INT_MAX,后者是 2147483647

[编辑] 示例

#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    printf("abs(+3) = %d\n", abs(+3));
    printf("abs(-3) = %d\n", abs(-3));
 
//  printf("%+d\n", abs(INT_MIN)); // undefined behavior on 2's complement systems
}

输出

abs(+3) = 3
abs(-3) = 3

[编辑] 参考

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.8.2.1 imaxabs 函数 (p: TBD)
  • 7.22.6.1 abs, labs 和 llabs 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.8.2.1 imaxabs 函数 (p: 159)
  • 7.22.6.1 abs, labs 和 llabs 函数 (p: 259)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.8.2.1 imaxabs 函数 (p: 218)
  • 7.22.6.1 abs, labs 和 llabs 函数 (p: 356)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.8.2.1 imaxabs 函数 (p: 199-200)
  • 7.20.6.1 abs, labs 和 llabs 函数 (p: 320)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.10.6.1 abs 函数
  • 4.10.6.3 labs 函数

[编辑] 另请参阅

(C99)(C99)
计算浮点值的绝对值 (|x|)
(函数) [编辑]
(C99)(C99)(C99)
计算复数的模
(函数) [编辑]
C++ 文档 用于 abs