abs, labs, llabs, imaxabs

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
abs
labs
llabs
imaxabs



(C99)
fabs
div
ldiv
lldiv
imaxdiv



(C99)
fmod
remainder(C99)
remquo(C99)
fma(C99)
fmax(C99)
fmin(C99)
fdim(C99)
nan
nanf
nanl
(C99)
(C99)
(C99)
指数函数
exp
exp2(C99)
expm1(C99)
log
log10
log1p(C99)
log2(C99)
幂函数
sqrt
cbrt(C99)
hypot(C99)
pow
三角及双曲函数
sinh
cosh
tanh
asinh(C99)
acosh(C99)
atanh(C99)
误差及伽马函数
erf(C99)
erfc(C99)
lgamma(C99)
tgamma(C99)
临近整数的浮点运算
ceil
floor
round
lround
llround
(C99)
(C99)
(C99)
trunc(C99)
nearbyint(C99)
rint
lrint
llrint
(C99)
(C99)
(C99)
浮点数操作函数
ldexp
scalbn
scalbln
(C99)
(C99)
ilogb(C99)
logb(C99)
分类
fpclassify(C99)
isfinite(C99)
isinf(C99)
isnan(C99)
isnormal(C99)
signbit(C99)
宏常量
 
定义于头文件 <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补数类型整数,INT_MIN是-2147483648,但其绝对值应有的结果是2147483648,大于INT_MAX,该值为2147483647。

[编辑] 示例

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
int main(void)
{
    printf("abs(+3) = %d\n", abs(+3));
    printf("abs(-3) = %d\n", abs(-3));
 
//  printf("%+d\n", abs(INT_MIN)); // 在2补数系统上是未定义行为
}

输出:

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

[编辑] 参考

  • C11 standard (ISO/IEC 9899:2011):
  • 7.8.2.1 The imaxabs function (p: 218)
  • 7.22.6.1 The abs, labs and llabs functions (p: 356)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.8.2.1 The imaxabs function (p: 199-200)
  • 7.20.6.1 The abs, labs and llabs functions (p: 320)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.10.6.1 The abs function
  • 4.10.6.3 The labs function

[编辑] 参阅


(C99)
(C99)
计算浮点值的绝对值 (|x|
(函数) [edit]
(C99)
(C99)
(C99)
计算复数的模(绝对值)
(函数) [edit]
absC++文档