Namespaces
Variants

abs, labs, llabs, imaxabs

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
abs labs llabs imaxabs
(C99) (C99)
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
定義先ヘッダ <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 の場合、 INT_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 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規格 (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)
複素数の大きさを計算する
(関数)