A C ++ - ban az ilogb () függvény visszaadja az | x | logaritmusának szerves részét, az FLT_RADIX-et használva a logaritmus alapjául.
Ezt a fejlécfájl határozza meg.
Matematikailag,
x = szignifikáns * FLT_RADIXexponens
szignifikancia egy lebegőpontos érték a tartományban (1.0, 2.0), x az ilogb () -nek átadott argumentum, az exponens pedig az ilogb () által visszaadott egész érték. Az FLT_RADIX értéke általában 2.
Az ilogb () által visszaadott érték eggyel kevesebb, mint a frexp () függvény által generált hatvány, mivel a szignifikancia az (1.0, 2.0) tartományban van a (0.5, 1.0) helyett, mint a frexp () -ben.
ilogb () prototípus (C ++ 11 szabvány szerint)
int ilogb (dupla x); int ilogb (float x); int ilogb (hosszú kettős x); int ilogb (T x); // Integrál típusra
ilogb () Paraméterek
Az ilogb () függvény egyetlen argumentumot vesz fel, amelynek ilogb-ját kiszámoljuk.
ilogb () Visszatérési érték
Az ilogb () függvény az | x | logaritmusának szerves részét adja vissza, az FLT_RADIX-et használva a logaritmus alapjául.
- Ha az argumentum 0, akkor az FP_LOGB0 értéket adja vissza.
- Ha az argumentum NaN, akkor az FP_LOGBNAN értéket adja vissza.
- Ha az argumentum végtelen, akkor az INT_MAX értéket adja vissza.
1. példa: Hogyan működik az ilogb () függvény a C ++ nyelven?
#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; )
A program futtatásakor a kimenet a következő lesz:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
2. példa: ilogb () függvény integrált típussal
#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; )
A program futtatásakor a kimenet a következő lesz:
ilogb (19) = 4 19 = 1,1875 * 2 4