Udostępnij za pośrednictwem


abs, _abs64

Oblicz wartość bezwzględną.

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

Parametry

  • n
    Wartość całkowita.

Wartość zwracana

Funkcja abs zwraca wartość bezwzględną tego parametru.Nie będzie zwrotu błędu.

Uwagi

Ponieważ język C++ pozwala na przeciążenie, można wywoływać przeciążenia abs przyjmujące i zwracające wartości long, long long, float, double i long double.W programie C abs zawsze przyjmuje i zwraca wartość int.

Specyficzne dla firmy Microsoft

Ponieważ zakres ujemnych liczb całkowitych, które mogą być reprezentowane za pomocą dowolnego typu integralnego, jest większy niż zakres dodatnich liczb całkowitych, który może być reprezentowany za pomocą tego typu, jest możliwe, aby podać argument do abs, który nie może zostać przekonwertowany.Jeśli wartość bezwzględna argumentu nie może być przedstawiona przez zwracany typ, funkcje abs zwracają niezmienioną wartość argumentu.abs(INT_MIN) zwraca INT_MIN, labs(LONG_MIN) zwraca LONG_MIN, llabs(LLONG_MIN) zwraca LLONG_MIN, a _abs64(_I64_MIN) zwraca _I64_MIN.Oznacza to, że funkcje abs nie mogą być używane dla zagwarantowania wartości dodatniej.

End specyficzny dla Microsoft

Wymagania

Procedura

Wymagany nagłówek

abs

<math.h>

_abs64

<stdlib.h>

Przykład

Program ten wylicza i wyświetla wartości bezwzględne dla kilku numerów.

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

Odpowiednik w programie .NET Framework

System::Math::Abs

Zobacz też

Informacje

Konwersja danych

Obsługa liczb zmiennoprzecinkowych

_cabs

fabs, fabsf

labs, llabs

imaxabs