abs, labs, llabs, imaxabs
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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 よりも大きくなります。
例
Run this code
#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)); // undefined behavior on 2's complement systems
}
出力:
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|) を計算します (関数) |
(C99)(C99)(C99) |
複素数の絶対値を計算します (関数) |
abs の C++リファレンス
| |