Namespaces
Variants

abs, labs, llabs, imaxabs

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
abs labs llabs imaxabs
(C99) (C99)
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <stdlib.h>
int abs ( int n ) ;
long labs ( long n ) ;
long long llabs ( long long n ) ;
(depuis C99)
Défini dans l'en-tête <inttypes.h>
intmax_t imaxabs ( intmax_t n ) ;
(depuis C99)

Calcule la valeur absolue d'un nombre entier. Le comportement est indéfini si le résultat ne peut pas être représenté par le type de retour.

Table des matières

Paramètres

n - valeur entière

Valeur de retour

La valeur absolue de n (c'est-à-dire |n| ), si elle est représentable.

Notes

Dans les systèmes en complément à 2, la valeur absolue de la valeur la plus négative est hors plage, par exemple pour le type en complément à 2 sur 32 bits int , INT_MIN est - 2147483648 , mais le résultat potentiel 2147483648 est supérieur à INT_MAX , qui est 2147483647 .

Exemple

#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("abs(+3) = %d\n", abs(+3));
    printf("abs(-3) = %d\n", abs(-3));
//  printf("%+d\n", abs(INT_MIN)); // undefined behavior on 2's complement systems
}

Sortie :

abs(+3) = 3
abs(-3) = 3
Traductions effectuées : - "Run this code" → "Exécuter ce code" - "Output:" → "Sortie :" Les éléments suivants ont été préservés : - Toutes les balises HTML et leurs attributs - Le code C++ dans les balises `
` et ``
- Les termes techniques C++ (abs, printf, INT_MIN, etc.)
- Les commentaires en anglais dans le code
- La mise en forme originale

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.8.2.1 La fonction imaxabs (p: TBD)
  • 7.22.6.1 Les fonctions abs, labs et llabs (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018):
  • 7.8.2.1 La fonction imaxabs (p: 159)
  • 7.22.6.1 Les fonctions abs, labs et llabs (p: 259)
  • Norme C11 (ISO/IEC 9899:2011):
  • 7.8.2.1 La fonction imaxabs (p: 218)
  • 7.22.6.1 Les fonctions abs, labs et llabs (p: 356)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.8.2.1 La fonction imaxabs (p: 199-200)
  • 7.20.6.1 Les fonctions abs, labs et llabs (p: 320)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 4.10.6.1 La fonction abs
  • 4.10.6.3 La fonction labs

Voir aussi

(C99) (C99)
calcule la valeur absolue d'une valeur à virgule flottante ( |x| )
(fonction)
(C99) (C99) (C99)
calcule le module d'un nombre complexe
(fonction)