Freigeben über


abs, _abs64

Berechnet den absoluten Wert.

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

Parameter

  • n
    Ganzzahliger Wert.

Rückgabewert

Die abs-Funktion gibt den absoluten Wert des Parameters zurück. Es gibt keine Fehlerrückgabe.

Hinweise

Da C++ das Überladen zulässt, können Sie Überladungen von absaufrufen, die long-, long long-, float-, double- und long double-Werte verwenden und zurückgeben. In einem C-Programm verwendet abs immer "int" und gibt auch "int" zurück.

Microsoft-spezifisch

Da der mithilfe eines Ganzzahltyps darstellbare Bereich von negativen ganzen Zahlen größer als der entsprechende Bereich von positiven ganzen Zahlen ist, die mithilfe dieses Typs dargestellt werden können, kann für abs ein nicht konvertierbares Argument bereitgestellt werden. Wenn der absolute Wert des Arguments nicht über 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. Dies bedeutet, dass die abs-Funktionen nicht verwendet werden können, um einen positiven Wert sicherzustellen.

Ende Microsoft-spezifisch

Anforderungen

Routine

Erforderlicher Header

abs

<math.h>

_abs64

<stdlib.h>

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));
}
  

.NET Framework-Entsprechung

System::Math::Abs

Siehe auch

Referenz

Datenkonvertierung

Gleitkommaunterstützung

_cabs

fabs, fabsf

labs, llabs

imaxabs