std::abs, std::labs, std::llabs, std::imaxabs
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <cstdlib> で定義
|
||
| ヘッダ <cmath> で定義
|
(C++17以上) |
|
int abs( int n ); |
||
long abs( long n ); |
||
long long abs( long long n ); |
(C++11以上) | |
| ヘッダ <cstdlib> で定義
|
||
long labs( long n ); |
||
long long llabs( long long n ); |
(C++11以上) | |
| ヘッダ <cinttypes> で定義
|
||
std::intmax_t abs( std::intmax_t n ); |
(C++11以上) | |
std::intmax_t imaxabs( std::intmax_t n ); |
(C++11以上) | |
整数の絶対値を計算します。 結果が戻り値の型で表現できない場合、動作は未定義です。
std::is_unsigned<X>::value が true であるような X 型の引数で std::abs が呼ばれ、 X が整数昇格によって int に変換できない場合、プログラムは ill-formed です。 |
(C++17以上) |
引数
| n | - | 整数値 |
戻り値
表現可能であれば、 n の絶対値 (すなわち |n|)。
ノート
2の補数のシステムでは、最も負の値の絶対値は範囲外です。 例えば、32ビットの2の補数の int 型では、 INT_MIN は -2147483648 ですが、その絶対値 2147483648 は INT_MAX の 2147483647 よりも大きくなります。
例
Run this code
#include <iostream>
#include <cstdlib>
#include <climits>
int main()
{
std::cout << "abs(+3) = " << std::abs(3) << '\n'
<< "abs(-3) = " << std::abs(-3) << '\n';
// std::cout << std::abs(INT_MIN); // undefined behavior on 2's complement systems
}
出力:
abs(+3) = 3
abs(-3) = 3
関連項目
(C++11)(C++11) |
浮動小数点値の絶対値 (|x|) を計算します (関数) |
| 複素数の絶対値を返します (関数テンプレート) | |
valarray の各要素に関数 abs を適用します (関数テンプレート) | |
abs, labs, llabs の C言語リファレンス
| |