Функція ilogb () у C ++ повертає невід'ємну частину логарифму | x |, використовуючи FLT_RADIX як основу логарифму.
Це визначено у файлі заголовка.
Математично,
x = значення і * FLT_RADIXexponent
significand - значення з плаваючою комою в діапазоні (1.0, 2.0), x - аргумент, переданий ilogb (), а експонент - ціле значення, повернене ilogb (). Значення FLT_RADIX зазвичай 2.
Значення, яке повертає ilogb (), на одне менше показника, що генерується функцією frexp (), оскільки значення є в діапазоні (1.0, 2.0) замість (0.5, 1.0), як у frexp ().
прототип ilogb () (за стандартом C ++ 11)
int ilogb (подвійний х); int ilogb (float x); int ilogb (довгий подвійний х); int ilogb (T x); // Для цілісного типу
ilogb () Параметри
Функція ilogb () приймає один аргумент, ilogb якого обчислюється.
ilogb () Повернене значення
Функція ilogb () повертає невід'ємну частину логарифму | x |, використовуючи FLT_RADIX як основу логарифму.
- Якщо аргумент дорівнює 0, він повертає FP_LOGB0.
- Якщо аргументом є NaN, він повертає FP_LOGBNAN.
- Якщо аргумент нескінченний, він повертає INT_MAX.
Приклад 1: Як функція ilogb () працює в C ++?
#include #include #include using namespace std; int main() ( int result; double significand; double x = 16.81; result = ilogb(x); significand = x / pow(FLT_RADIX, result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Коли ви запускаєте програму, результат буде:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Приклад 2: Функція ilogb () з інтегральним типом
#include #include #include using namespace std; int main() ( int result, x = 19; result = ilogb(x); double significand = x/pow(FLT_RADIX,result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Коли ви запускаєте програму, результат буде:
ilogb (19) = 4 19 = 1,1875 * 2 4