abs
, labs
, llabs
, _abs64
Bağımsız değişkenin mutlak değerini hesaplar.
Sözdizimi
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
Parametreler
n
Sayısal değer.
Dönüş değeri
abs
, labs
, llabs
ve _abs64
işlevleri parametresinin n
mutlak değerini döndürür. Hata döndürme yok.
Açıklamalar
C++ aşırı yüklemeye izin verdiğinden, bu alma işleminin abs
aşırı yüklemelerini çağırabilir ve , long long
, float
, double
ve long double
değerlerini döndürebilirsinizlong
. Bu aşırı yüklemeler üst bilgide <cmath>
tanımlanır. C programında, abs
her zaman alır int
ve döndürür.
Microsoft'a özgü: Herhangi bir tamsayı türünde temsil edilebilen negatif tamsayı aralığı, bu türdeki temsil edilebilir pozitif tamsayı aralığından daha büyüktür. Bu nedenle, bu işlevlere dönüştürülemez bir bağımsız değişken sağlamak mümkündür. Bağımsız değişkenin mutlak değeri dönüş türüyle gösterilemiyorsa, abs
işlevler bağımsız değişken değerini değiştirmeden döndürür. Özel olarak, döndürürINT_MIN
, abs(INT_MIN)
labs(LONG_MIN)
döndürür llabs(LLONG_MIN)
LONG_MIN
, döndürür LLONG_MIN
ve _abs64(_I64_MIN)
döndürür_I64_MIN
. İşlevler abs
etkili bir şekilde pozitif bir değeri garanti etmek için kullanılamaz.
Gereksinimler
Yordam | Gerekli C üst bilgisi | Gerekli C++ üst bilgisi |
---|---|---|
abs , labs , llabs |
<math.h> veya <stdlib.h> |
<cmath> , <cstdlib> veya <stdlib.h> <math.h> |
_abs64 |
<stdlib.h> |
<cstdlib> veya <stdlib.h> |
C++ içinde aşırı yüklenmiş sürümlerini abs
kullanmak için üst bilgiyi eklemeniz <cmath>
gerekir.
Örnek
Bu program, birkaç sayının mutlak değerlerini hesaplar ve görüntüler.
// 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
Ayrıca bkz.
Veri dönüştürme
Matematik ve kayan nokta desteği
_cabs
fabs
, fabsf
, fabsl
imaxabs