名前空間
変種
操作

abs, labs, llabs, imaxabs

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
abslabsllabsimaxabs
(C99)(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <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ですが、その絶対値である2147483648INT_MAX2147483647)よりも大きいため、範囲外となります。

[編集]

#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標準 (ISO/IEC 9899:2011)
  • 7.8.2.1 imaxabs 関数 (p: 218)
  • 7.22.6.1 abs, labs, llabs 関数 (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)
複素数の絶対値を計算する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)