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 <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) | вычисляет абсолютное значение числа с плавающей точкой (\(\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/c/numeric/math/abs