ilogb, ilogbf, ilogbl – выделение порядка числа с плавающей точкой.
Синтаксис:
#include < math.h >
int ilogb (double x);
int ilogbf (float x);
int ilogbl (long double x);
Аргументы:
x – число с плавающей точкой порядок которого необходимо определить.
Возвращаемое значение:
Порядок аргумента, если определение порядка завершилось верно.
FP_ILOGBO, если аргумент 0, при этом генерируется ошибка «выход за пределы области допустимых значений (domain error).
INT_MAX, если аргумент плюс или минус бесконечность или полученный результат превосходит INT_MAX, при этом генерируется ошибка «выход за пределы области допустимых значений (domain error).
FP_ILOGBNAN, если аргумент nan, при этом генерируется ошибка «переполнение».
INT_MIN, если полученный результат меньше INT_MIN, при этом генерируется ошибка «выход за пределы области допустимых значений (domain error).
Значения INT_MAX и INT_MIN определены в библиотеке limits.h.
Описание:
Любое число можно представить в виде m*rp, где m – мантисса принимающая значения от 1 до r, включая 1, p – порядок, r – основание. Значение основание определяется константой FLT_RADIX определенной в библиотеке float.h.
Функции ilogb, ilogbf, ilogbl выделяют порядок числа с плавающей точкой.
Другими словами эти функции рассчитывают целую часть logr |x|.
Функции ilogb, ilogbf, ilogbl отличаются друг от друга точностью аргумента. Так аргумент функции ilogb являeтся числом с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).
Аргумент функции ilogbf является числом с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).
Аргумент функции ilogbl является числом с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).
Пример:
В примере вычисляется порядок число 1285.97519 с помощью функции ilogb и результат выводится на консоль
#include < stdio.h > //Для printf
#include < math.h > //Для ilogb
int main (void)
{
// Вывод аргумента
printf (“Аргумент: 1285.97519 \n”);
//Расчет и вывод порядка аргумента
printf (“Порядок: %d\n”, ilogb (1285.97519) );
return 0;
}
| |
Результат:
Аргумент: 1285.97519
Порядок: 24
|
Смотри так же:
logb, logbf, logbl
ilogb, ilogbf, ilogbl
ldexp, ldexpf, ldexpl
frexp, frexpf, frexpl
scalb, scalbf, scalbl
scalbn, scalbnf, scalbnl
scalbln, scalblnf, scalblnl
|