次の方法で共有


abs、_abs64

絶対値を計算します。

int abs( 
   int 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
__int64 _abs64( 
   __int64 n 
);

パラメーター

  • n
    整数値。

戻り値

abs 関数は、パラメーターの絶対値を返します。 エラーの戻り値はありません。

解説

C++ ではオーバーロードが可能であるため、long, long long、float、double、および long double の値を受け取って返す abs のオーバーロードを呼び出すことができます。 C プログラムでは、abs は常に整数を受け取り、整数を返します。

Microsoft 固有の仕様 →

整数型を使用して表すことができる負の整数の範囲は、正の整数が表すことができる範囲より大きいため、変換できない abs に引数を指定できます。 引数の絶対値を戻り値の型で表すことができない場合、abs 関数は引数の値を変更せずに返します。 具体的には、abs(INT_MIN) は INT_MIN を返し、labs(LONG_MIN) は LONG_MIN を返します。また llabs(LLONG_MIN) は LLONG_MIN を返し、_abs64(_I64_MIN) は _I64_MIN を返します。 このため、abs 関数を使用して正の値を保証することはできません。

End Microsoft 固有

必要条件

ルーチン

必須ヘッダー

abs

<math.h>

_abs64

<stdlib.h>

使用例

次のプログラムでは、複数の数値の絶対値を計算して表示します。

// 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));
}
  

同等の .NET Framework 関数

System::Math::Abs

参照

関連項目

データ変換

浮動小数点サポート

_cabs

fabs、fabsf

labs、llabs

imaxabs