Namespaces
Variants
Views
Actions

abs, labs, llabs, imaxabs

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
Common mathematical functions
Functions
Basic operations
abslabsllabsimaxabs
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
Exponential functions
(C99)
(C99)
(C99)
(C99)
Power functions
(C99)
(C99)
Trigonometric and hyperbolic functions
(C99)
(C99)
(C99)
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Nearest integer floating point operations
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
Floating point manipulation functions
(C99)(C99)
(C99)
(C99)
Classification
(C99)
(C99)
(C99)
Macro constants
 
Defined in header <stdlib.h>
int        abs( int n );
long       labs( long n );
long long llabs( long long n );
(since C99)
Defined in header <inttypes.h>
intmax_t imaxabs( intmax_t n );
(since C99)

Computes the absolute value of an integer number. The behavior is undefined if the result cannot be represented by the return type.

Contents

[edit] Parameters

n - integer value

[edit] Return value

The absolute value of n (i.e. |n|), if it is representable.

[edit] Notes

In 2's complement systems, the absolute value of the most-negative value is out of range, e.g. for 32-bit 2's complement type int, INT_MIN is -2147483648, but the would-be result 2147483648 is greater than INT_MAX, which is 2147483647.

[edit] Example

#include <stdio.h>
#include <stdlib.h>
#include <limits.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
}

Output:

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

[edit] See also

(C99)(C99)
computes absolute value of a floating-point value (|x|)
(function) [edit]
(C99)(C99)(C99)
computes the magnitude of a complex number
(function) [edit]