abs
, , labs
llabs
, ,_abs64
Calcule la valeur absolue de l’argument.
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
Paramètres
n
Valeur numérique.
Valeur retournée
Les abs
fonctions , , labs
llabs
et _abs64
retournent la valeur absolue du paramètre n
. Il n’existe aucun retour d’erreur.
Notes
C++ autorisant la surcharge, vous pouvez appeler des surcharges de abs
qui acceptent et retournent des valeurs long
, long long
, float
, double
et long double
. Ces surcharges sont définies dans l’en-tête <cmath>
. Dans un programme C, abs
prend toujours et retourne un int
.
Spécifique à Microsoft : la plage d’entiers négatifs pouvant être représentée dans n’importe quel type intégral est supérieure à la plage d’entiers positifs représentés dans ce type. Par conséquent, il est possible de fournir un argument à ces fonctions qui ne peuvent pas être converties. Si la valeur absolue de l’argument ne peut pas être représentée par le type de retour, les abs
fonctions retournent la valeur d’argument inchangée. Plus précisément, abs(INT_MIN)
retourne INT_MIN
, labs(LONG_MIN)
retourne LONG_MIN
, llabs(LLONG_MIN)
retourne LLONG_MIN
, tandis que _abs64(_I64_MIN)
retourne _I64_MIN
. En fait, les abs
fonctions ne peuvent pas être utilisées pour garantir une valeur positive.
Spécifications
Routine | En-tête C requis | En-tête C++ requis |
---|---|---|
abs , , labs llabs |
<math.h> ou <stdlib.h> |
<cmath> <cstdlib> <stdlib.h> , <math.h> ou |
_abs64 |
<stdlib.h> |
<cstdlib> ou <stdlib.h> |
Pour utiliser les versions surchargées de abs
C++, vous devez inclure l’en-tête <cmath>
.
Exemple
Ce programme calcule et affiche les valeurs absolues de plusieurs nombres.
// 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
Voir aussi
Conversion de données
Prise en charge des fonctions mathématiques et à virgule flottante
_cabs
fabs
, , fabsf
fabsl
imaxabs