Funkcija ilogb () C ++ atgriež | x | logaritma neatņemamo daļu, kā logaritma pamatu izmantojot FLT_RADIX.
Tas ir definēts galvenes failā.
Matemātiski,
x = zīmols * FLT_RADIXeksponents
sigandand ir peldošā komata vērtība diapazonā (1.0, 2.0), x ir arguments, kas nodots ilogb (), un eksponents ir ilogb () atgrieztā veselā skaitļa vērtība. FLT_RADIX vērtība parasti ir 2.
Ilogb () atgrieztā vērtība ir par vienu mazāka par eksponentu, ko rada funkcija frexp (), jo nozīmes zīme ir diapazonā (1.0, 2.0), nevis (0.5, 1.0), kā frexp ().
ilogb () prototips (pēc standarta C ++ 11)
int ilogb (dubultā x); int ilogb (pludiņš x); int ilogb (garš dubultā x); int ilogb (T x); // Neatņemamajam tipam
ilogb () parametri
Funkcijai ilogb () ir nepieciešams viens arguments, kura ilogb tiek aprēķināts.
ilogb () Atgriešanās vērtība
Funkcija ilogb () atgriež | x | logaritma neatņemamo daļu, kā logaritma pamatu izmantojot FLT_RADIX.
- Ja arguments ir 0, tas atgriež FP_LOGB0.
- Ja arguments ir NaN, tas atgriež FP_LOGBNAN.
- Ja arguments ir bezgalīgs, tas atgriež INT_MAX.
1. piemērs: kā funkcija ilogb () darbojas 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; )
Palaidot programmu, izeja būs:
ilogb (16.81) = 4 16.81 = 1.05062 * 2 4
2. piemērs: funkcija ilogb () ar integrālo tipu
#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; )
Palaidot programmu, izeja būs:
ilogb (19) = 4 19 = 1,1875 * 2 4