abs
, , labs
llabs
_abs64
Berechnet den absoluten Wert des Arguments.
Syntax
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
Parameter
n
Ein numerischer Wert.
Rückgabewert
Die abs
, labs
, llabs
und _abs64
Funktionen geben den absoluten Wert des Parameters n
zurück. Es gibt keine Fehlerrückgabe.
Hinweise
Da C++ das Überladen zulässt, können Sie Überladungen von abs
aufrufen, die long
-, long long
-, float
-, double
- und long double
-Werte verwenden und zurückgeben. Diese Überladungen werden im <cmath>
Header definiert. In einem C-Programm abs
nimmt und gibt immer ein int
.
Microsoft-spezifisch: Der Bereich negativer ganzzahliger Zahlen, die in einem beliebigen integralen Typ dargestellt werden können, ist größer als der Bereich positiver ganzzahliger Zahlen, die in diesem Typ dargestellt werden können. Sie können also ein Argument für diese Funktionen bereitstellen, die nicht konvertiert werden können. Wenn der absolute Wert des Arguments nicht durch den Rückgabetyp dargestellt werden kann, geben die abs
Funktionen den Argumentwert unverändert zurück. Insbesondere gibt abs(INT_MIN)
INT_MIN
zurück, labs(LONG_MIN)
gibt LONG_MIN
zurück, llabs(LLONG_MIN)
gibt LLONG_MIN
zurück und _abs64(_I64_MIN)
gibt _I64_MIN
zurück. Effektiv können die abs
Funktionen nicht verwendet werden, um einen positiven Wert zu garantieren.
Anforderungen
Routine | Erforderlicher C-Header | Erforderlicher C++-Header |
---|---|---|
abs , labs llabs |
<math.h> oder <stdlib.h> |
<cmath> , <cstdlib> , <stdlib.h> oder <math.h> |
_abs64 |
<stdlib.h> |
<cstdlib> oder <stdlib.h> |
Um die überladenen Versionen in abs
C++ zu verwenden, müssen Sie den <cmath>
Header einschließen.
Beispiel
Dieses Programm berechnet die absoluten Werte einiger Zahlen und zeigt sie an.
// 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
Siehe auch
Datenkonvertierung
Mathematische Unterstützung und Gleitkommaunterstützung
_cabs
fabs
, fabsf
fabsl
imaxabs