名稱空間
變體
操作

abs, labs, llabs, imaxabs

來自 cppreference.com
< c‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
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)
量子與量子指數
十進位制重新編碼函式
總序和載荷函式
分類
(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 的補碼型別 intINT_MIN-2147483648,但本應得到的結果 2147483648 大於 INT_MAX,後者是 2147483647

[編輯] 示例

#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)
計算複數的模
(函式) [編輯]
C++ 文件 用於 abs