abs
, labs
, , llabs
_abs64
Vypočítá absolutní hodnotu argumentu.
Syntaxe
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
Parametry
n
Číselná hodnota
Vrácená hodnota
Funkce abs
, labs
llabs
a _abs64
funkce vrací absolutní hodnotu parametru n
. Nevrátí se žádná chyba.
Poznámky
Vzhledem k tomu, C++ umožňuje přetížení, můžete volat přetížení abs
, které vzít a vrátit long
, long long
, float
, double
, a long double
hodnoty. Tato přetížení jsou definována <cmath>
v hlavičce. V programu abs
jazyka C vždy vezme a vrátí hodnotu int
.
Specifické pro Společnost Microsoft: Rozsah záporných celých čísel reprezentovatelných v libovolném celočíselném typu je větší než rozsah kladných celých čísel reprezentovatelných v daném typu. Proto je možné těmto funkcím zadat argument, který nelze převést. Pokud absolutní hodnota argumentu nemůže být reprezentována návratovým typem, abs
vrátí funkce hodnotu argumentu beze změny. Konkrétně vrátí abs(INT_MIN)
, vrátí , llabs(LLONG_MIN)
vrátí LONG_MIN
LLONG_MIN
a _abs64(_I64_MIN)
vrátí _I64_MIN
. labs(LONG_MIN)
INT_MIN
abs
Funkce se v podstatě nedají použít k zajištění kladné hodnoty.
Požadavky
Rutina | Požadovaná hlavička jazyka C | Požadovaná hlavička C++ |
---|---|---|
abs , , labs llabs |
<math.h> nebo <stdlib.h> |
<cmath> , <cstdlib> <stdlib.h> nebo<math.h> |
_abs64 |
<stdlib.h> |
<cstdlib> nebo <stdlib.h> |
Chcete-li použít přetížené verze jazyka abs
C++, musíte zahrnout hlavičku <cmath>
.
Příklad
Tento program vypočítá a zobrazí absolutní hodnoty několika čísel.
// 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
Viz také
Konverze dat
Podpora pro matematiku a plovoucí desetinou čárku
_cabs
fabs
, , fabsf
fabsl
imaxabs