abs, labs, llabs, imaxabs
Определено в заголовке <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 <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
}Вывод:
abs(+3) = 3 abs(-3) = 3
Справочные материалы
- Стандарт 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) | вычисляет абсолютное значение значения с плавающей точкой (\(\small{|x|}\)|x|) (функция) |
|
(C99)(C99)(C99) | вычисляет модуль комплексного числа (функция) |
Документация C++ для abs |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/abs