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
Definido en el encabezado <stdlib.h>
int abs ( int n ) ;
long labs ( long n ) ;
long long llabs ( long long n ) ;
(desde C99)
Definido en el encabezado <inttypes.h>
intmax_t imaxabs ( intmax_t n ) ;
(desde C99)

Calcula el valor absoluto de un número entero. El comportamiento es indefinido si el resultado no puede ser representado por el tipo de retorno.

Contenidos

Parámetros

n - valor entero

Valor de retorno

El valor absoluto de n (es decir, |n| ), si es representable.

Notas

En sistemas de complemento a 2, el valor absoluto del valor más negativo está fuera de rango, por ejemplo, para el tipo de complemento a 2 de 32 bits int , INT_MIN es - 2147483648 , pero el resultado hipotético 2147483648 es mayor que INT_MAX , que es 2147483647 .

Ejemplo

#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
}

Salida:

abs(+3) = 3
abs(-3) = 3

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.8.2.1 La función imaxabs (p: TBD)
  • 7.22.6.1 Las funciones abs, labs y llabs (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.8.2.1 La función imaxabs (p: 159)
  • 7.22.6.1 Las funciones abs, labs y llabs (p: 259)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.8.2.1 La función imaxabs (p: 218)
  • 7.22.6.1 Las funciones abs, labs y llabs (p: 356)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.8.2.1 La función imaxabs (p: 199-200)
  • 7.20.6.1 Las funciones abs, labs y llabs (p: 320)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.10.6.1 La función abs
  • 4.10.6.3 La función labs

Véase también

(C99) (C99)
calcula el valor absoluto de un valor de punto flotante ( |x| )
(función)
(C99) (C99) (C99)
calcula la magnitud de un número complejo
(función)