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
Определено в заголовочном файле <stdlib.h>
int abs ( int n ) ;
long labs ( long n ) ;
long long llabs ( long long n ) ;
(начиная с C99)
Определено в заголовочном файле <inttypes.h>
intmax_t imaxabs ( intmax_t n ) ;
(начиная с C99)

Вычисляет абсолютное значение целого числа. Поведение не определено, если результат не может быть представлен типом возвращаемого значения.

Содержание

Параметры

n - целочисленное значение

Возвращаемое значение

Абсолютное значение n (т.е. |n| ), если оно представимо.

Примечания

В системах с дополнительным кодом абсолютное значение самого отрицательного числа выходит за пределы диапазона, например, для 32-битного типа с дополнительным кодом int , INT_MIN равно - 2147483648 , но предполагаемый результат 2147483648 больше, чем INT_MAX , который равен 2147483647 .

Пример

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

Вывод:

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

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 7.8.2.1 Функция imaxabs (стр.: TBD)
  • 7.22.6.1 Функции abs, labs и llabs (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.8.2.1 Функция imaxabs (стр. 159)
  • 7.22.6.1 Функции abs, labs и llabs (стр. 259)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.8.2.1 Функция imaxabs (стр: 218)
  • 7.22.6.1 Функции abs, labs и llabs (стр: 356)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.8.2.1 Функция imaxabs (стр: 199-200)
  • 7.20.6.1 Функции abs, labs и llabs (стр: 320)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 4.10.6.1 Функция abs
  • 4.10.6.3 Функция labs

Смотрите также

(C99) (C99)
вычисляет абсолютное значение числа с плавающей запятой ( |x| )
(функция)
(C99) (C99) (C99)
вычисляет модуль комплексного числа
(функция)