C ++ ilogb () - C ++ Standardbibliotek

Funktionen ilogb () i C ++ returnerar den integrerade delen av logaritmen för | x |, med FLT_RADIX som bas för logaritmen.

Detta definieras i rubrikfilen.

Matematiskt,

 x = significand * FLT_RADIXexponent

significand är ett flytpunktsvärde i intervallet (1.0, 2.0), x är argumentet som skickas till ilogb () och exponent är heltalsvärdet som returneras av ilogb (). Värdet på FLT_RADIX är vanligtvis 2.

Värdet som returneras av ilogb () är ett mindre än exponenten som genereras av frexp () -funktionen, eftersom signifikansen ligger i intervallet (1.0, 2.0) istället för (0.5, 1.0) som i frexp ().

ilogb () prototyp (Från och med C ++ 11-standarden)

int ilogb (dubbel x); int ilogb (float x); int ilogb (lång dubbel x); int ilogb (Tx); // För integrerad typ

ilogb () Parametrar

Funktionen ilogb () tar ett enda argument vars ilogb beräknas.

ilogb () Returvärde

Funktionen ilogb () returnerar den integrerade delen av logaritmen för | x |, med FLT_RADIX som bas för logaritmen.

  • Om argumentet är 0 returnerar det FP_LOGB0.
  • Om argumentet är NaN returnerar det FP_LOGBNAN.
  • Om argumentet är oändligt returnerar det INT_MAX.

Exempel 1: Hur fungerar 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ör programmet blir resultatet:

 ilogb (16,81) = 4 16,81 = 1,05062 * 2 4 

Exempel 2: ilogb () -funktion med integraltyp

 #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ör programmet blir resultatet:

 ilogb (19) = 4 19 = 1,1875 * 2 4

Intressanta artiklar...