abs、labs、llabs、_abs64abs, labs, llabs, _abs64

引数の絶対値を計算します。Calculates the absolute value of the argument.

構文Syntax

int abs( int n );
long labs( long n );
long long llabs( long long n );
__int64 _abs64( __int64 n );
long abs( long n );   // C++ only
long long abs( long long n );   // C++ only
double abs( double n );   // C++ only
long double abs( long double n );   // C++ only
float abs( float n );   // C++ only

パラメーターParameters

nn
数値。Numeric value.

戻り値Return Value

Abslabsllabs 、および _abs64関数は、パラメーター nの絶対値を返します。The abs, labs, llabs and _abs64 functions return the absolute value of the parameter n. エラーの戻り値はありません。There is no error return.

解説Remarks

でC++はオーバーロードが可能であるため、 long 、long longfloatdouble、およびlong double値を取得して返すabsのオーバーロードを呼び出すことができます。Because C++ allows overloading, you can call overloads of abs that take and return long, long long, float, double, and long double values. これらのオーバーロードは <cmath> ヘッダーで定義されています。These overloads are defined in the <cmath> header. C プログラムでは、 absは常にintを受け取り、返します。In a C program, abs always takes and returns an int.

Microsoft 固有: 任意の整数型を使用して表すことができる負の整数の範囲は、その型を使用して表すことができる正の整数の範囲より大きいため、変換できないこれらの関数に引数を指定することができます。Microsoft-specific: Because the range of negative integers that can be represented by using any integral type is larger than the range of positive integers that can be represented by using that type, it's possible to supply an argument to these functions that can’t be converted. 引数の絶対値を戻り値の型で表すことができない場合、 abs関数は引数の値を変更せずに返します。If the absolute value of the argument cannot be represented by the return type, the abs functions return the argument value unchanged. 具体的には、abs(INT_MIN)INT_MIN を返し、labs(LONG_MIN)LONG_MIN を返します。また llabs(LLONG_MIN)LLONG_MIN を返し、_abs64(_I64_MIN)_I64_MIN を返します。Specifically, abs(INT_MIN) returns INT_MIN, labs(LONG_MIN) returns LONG_MIN, llabs(LLONG_MIN) returns LLONG_MIN, and _abs64(_I64_MIN) returns _I64_MIN. これは、 abs関数を使用して正の値を保証することができないことを意味します。This means that the abs functions cannot be used to guarantee a positive value.

必要条件Requirements

ルーチンによって返される値Routine 必須の C ヘッダーRequired C header 必須の C++ ヘッダーRequired C++ header
abslabsllabsabs, labs, llabs <math.h> または <stdlib.h><math.h> or <stdlib.h> <cmath>、<cstdlib>、<stdlib.h>、または <math.h><cmath>, <cstdlib>, <stdlib.h> or <math.h>
_abs64_abs64 <stdlib.h><stdlib.h> <cstdlib> または <stdlib.h><cstdlib> or <stdlib.h>

のC++オーバーロードされたバージョンのabsを使用するには、<cmath > ヘッダーを含める必要があります。To use the overloaded versions of abs in C++, you must include the <cmath> header.

Example

次のプログラムでは、複数の数値の絶対値を計算して表示します。This program computes and displays the absolute values of several numbers.

// crt_abs.c
// Build: cl /W3 /TC crt_abs.c
// This program demonstrates the use of the abs function
// by computing and displaying the absolute values of
// several numbers.

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <limits.h>

int main( void )
{
    int ix = -4;
    long lx = -41567L;
    long long llx = -9876543210LL;
    __int64 wx = -1;

    // absolute 32 bit integer value
    printf_s("The absolute value of %d is %d\n", ix, abs(ix));

    // absolute long integer value
    printf_s("The absolute value of %ld is %ld\n", lx, labs(lx));

    // absolute long long integer value
    printf_s("The absolute value of %lld is %lld\n", llx, llabs(llx));

    // absolute 64 bit integer value
    printf_s("The absolute value of 0x%.16I64x is 0x%.16I64x\n", wx,
        _abs64(wx));

    // Integer error cases:
    printf_s("Microsoft implementation-specific results:\n");
    printf_s(" abs(INT_MIN) returns %d\n", abs(INT_MIN));
    printf_s(" labs(LONG_MIN) returns %ld\n", labs(LONG_MIN));
    printf_s(" llabs(LLONG_MIN) returns %lld\n", llabs(LLONG_MIN));
    printf_s(" _abs64(_I64_MIN) returns 0x%.16I64x\n", _abs64(_I64_MIN));
}
The absolute value of -4 is 4
The absolute value of -41567 is 41567
The absolute value of -9876543210 is 9876543210
The absolute value of 0xffffffffffffffff is 0x0000000000000001
Microsoft implementation-specific results:
abs(INT_MIN) returns -2147483648
labs(LONG_MIN) returns -2147483648
llabs(LLONG_MIN) returns -9223372036854775808
_abs64(_I64_MIN) returns 0x8000000000000000

参照See also

データ変換Data Conversion
浮動小数点サポートFloating-Point Support
_cabs_cabs
fabs、fabsf、fabslfabs, fabsf, fabsl
imaxabsimaxabs