Spec-Zone.ru › C

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

См. также

fabsfabsffabsl
(C99)(C99)
вычисляет абсолютное значение числа с плавающей точкой (\(\small{|x|}\)|x|)
(функция)
cabscabsfcabsl
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API