命名空间
变体
操作

abs, labs, llabs, imaxabs

来自 cppreference.cn
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本操作
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 函数 (页码:待定)
  • 7.22.6.1 abs、labs 和 llabs 函数 (页码:待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.8.2.1 imaxabs 函数 (页码:159)
  • 7.22.6.1 abs、labs 和 llabs 函数 (页码:259)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.8.2.1 imaxabs 函数 (页码:218)
  • 7.22.6.1 abs、labs 和 llabs 函数 (页码:356)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.8.2.1 imaxabs 函数 (页码:199-200)
  • 7.20.6.1 abs、labs 和 llabs 函数 (页码: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