Funktionen ilogb () i C ++ returnerer den integrerede del af logaritmen af | x | ved hjælp af FLT_RADIX som base for logaritmen.
Dette er defineret i headerfilen.
Matematisk,
x = significand * FLT_RADIXexponent
significand er en flydende punktværdi i intervallet (1.0, 2.0), x er argumentet, der sendes til ilogb (), og eksponent er det heltalsværdi, der returneres af ilogb (). Værdien af FLT_RADIX er generelt 2.
Den værdi, der returneres af ilogb (), er en mindre end eksponenten genereret af frexp () -funktionen, da significand er i området (1.0, 2.0) i stedet for (0.5, 1.0) som i frexp ().
ilogb () prototype (pr. C ++ 11 standard)
int ilogb (dobbelt x); int ilogb (flyde x); int ilogb (lang dobbelt x); int ilogb (Tx); // For integreret type
ilogb () Parametre
Funktionen ilogb () tager et enkelt argument, hvis ilogb beregnes.
ilogb () Returværdi
Funktionen ilogb () returnerer den integrerede del af logaritmen til | x | ved hjælp af FLT_RADIX som base for logaritmen.
- Hvis argumentet er 0, returnerer det FP_LOGB0.
- Hvis argumentet er NaN, returnerer det FP_LOGBNAN.
- Hvis argumentet er uendeligt, returnerer det INT_MAX.
Eksempel 1: Hvordan fungerer ilogb () -funktionen i 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; )
Når du kører programmet, vil output være:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Eksempel 2: ilogb () -funktion med integreret type
#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; )
Når du kører programmet, vil output være:
ilogb (19) = 4 19 = 1,1875 * 2 4