ilogb, , ilogbfilogbl

Возвращает целое число, представляющее несмещенный порядок по основанию 2 для заданного значения.

Синтаксис

int ilogb(
   double x
);

int ilogb(
   float x
); //C++ only

int ilogb(
   long double x
); //C++ only

int ilogbf(
   float x
);

int ilogbl(
   long double x
);

#define ilogbl(X) // Requires C11 or higher

Параметры

x
Указанное значение.

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

В случае успешного выполнения эти функции возвращают экспонент x base-2 в signed int виде значения.

В противном случае функции возвращают одно из следующих значений, определенных в <math.h>:

Входные данные Результат
±0 FP_ILOGB0
± INF, ± NAN, IND FP_ILOGBNAN

Ошибки сообщаются, как указано в _matherr.

Замечания

Поскольку C++ допускает перегрузки, можно вызывать перегрузки функции ilogb, принимающие и возвращающие типы float и long double. В программе C, если вы не используете <макрос tgmath.h> для вызова этой функции, ilogb всегда принимает и возвращает значение double.

Если вы используете <макрос tgmath.h>ilogb() , тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе "Математика с универсальным типом".

Вызов этой функции аналогичен вызову эквивалентной функции logb с последующим приведением возвращаемого значения к типу int.

Требования

Маршрут Заголовок C Заголовок C++
ilogb, , ilogbfilogbl <math.h> <cmath>
ilogbМакрос <tgmath.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Справочник по алфавитной функции
frexp
logb, , logbflogbl, _logb_logbf