Функцията 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 (двоен x); int ilogb (float x); int ilogb (дълъг двоен x); 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