C ++ ilogb () - C ++ Standardbibliotek

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

Interessante artikler...