建議使用 Visual Studio 2017

abs、 實驗室、 llabs、 _abs64

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

計算引數的絕對值。

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  
long labs(  
   long n   
);  
long long llabs(  
   long long n   
);  
__int64 _abs64(   
   __int64 n   
);  

參數

n
數字值。

abslabsllabs_abs64函式會傳回參數的絕對值n。 不會傳回錯誤。

因為 c + + 允許多載,所以您可以呼叫的多載abs採用並傳回longlong longfloatdouble,和long double值。 這些多載中定義<>>標頭。 在 C 程式中,abs一律採用並傳回 int。

Microsoft 特定的

由於負數的整數,可以使用任何整數類資料類型表示的範圍是大於可使用該型別表示的整數範圍,就可以提供引數無法轉換這些函式。 如果無法傳回的型別,表示引數的絕對值abs函式會傳回未變更的引數值。 具體來說,abs(INT_MIN)傳回INT_MINlabs(LONG_MIN)傳回LONG_MINllabs(LLONG_MIN)傳回LLONG_MIN,和_abs64(_I64_MIN)傳回_I64_MIN。 這表示,abs函數不能保證為正整數值。

End Microsoft 特定的

常式必要的 C 標頭必要的 c + + 標頭
abs, labs, llabs<math.h>或<stdlib.h></stdlib.h></math.h><>>, <>>, <stdlib.h> or <math.h></math.h></stdlib.h>
_abs64<stdlib.h><>>或<stdlib.h></stdlib.h>

若要使用的多載的版本abs在 c + +,您必須包含<>>標頭。

此程式會計算並顯示數個數字的絕對值。

// 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  
  

System::Math::Abs

資料轉換
浮點支援
_cabs
fabs、 fabsf fabsl
imaxabs

顯示: