C ++ ilogb () - C ++ standaardbibliotheek

De functie ilogb () in C ++ geeft het integrale deel van de logaritme van | x | terug, met FLT_RADIX als basis voor de logaritme.

Dit wordt gedefinieerd in het header-bestand.

Wiskundig,

 x = significant * FLT_RADIXexponent

significant is een drijvende-kommawaarde in het bereik (1.0, 2.0), x is het argument dat wordt doorgegeven aan ilogb () en exponent is de gehele waarde die wordt geretourneerd door ilogb (). De waarde van FLT_RADIX is doorgaans 2.

De waarde die wordt geretourneerd door ilogb () is één minder dan de exponent die wordt gegenereerd door de functie frexp (), aangezien de significantie in het bereik (1.0, 2.0) ligt in plaats van (0.5, 1.0) zoals in frexp ().

ilogb () prototype (vanaf C ++ 11-standaard)

int ilogb (dubbele x); int ilogb (float x); int ilogb (lange dubbele x); int ilogb (T x); // Voor integraal type

ilogb () Parameters

De functie ilogb () accepteert een enkel argument waarvan ilogb wordt berekend.

ilogb () Retourwaarde

De functie ilogb () geeft het integrale deel van de logaritme van | x | terug, met FLT_RADIX als basis voor de logaritme.

  • Als het argument 0 is, wordt FP_LOGB0 geretourneerd.
  • Als het argument NaN is, geeft het FP_LOGBNAN terug.
  • Als het argument oneindig is, geeft het INT_MAX terug.

Voorbeeld 1: Hoe werkt de ilogb () -functie in 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; ) 

Wanneer u het programma uitvoert, is de uitvoer:

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

Voorbeeld 2: ilogb () functie met integraal 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; ) 

Wanneer u het programma uitvoert, is de uitvoer:

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

Interessante artikelen...