C ++ ilogb () - standardní knihovna C ++

Funkce ilogb () v C ++ vrací integrální část logaritmu | x |, přičemž jako základ pro logaritmus používá FLT_RADIX.

To je definováno v hlavičkovém souboru.

Matematicky,

 x = significant * FLT_RADIXexponent

mantik je hodnota s plovoucí desetinnou čárkou v rozsahu (1,0, 2,0), x je argument předaný ilogb () a exponent je celočíselná hodnota vrácená ilogb (). Hodnota FLT_RADIX je obecně 2.

Hodnota vrácená funkcí ilogb () je o jednu menší než exponent generovaný funkcí frexp (), protože význam je v rozsahu (1,0, 2,0) namísto (0,5, 1,0) jako v frexp ().

ilogb () prototyp (od standardu C ++ 11)

int ilogb (double x); int ilogb (float x); int ilogb (dlouhé dvojité x); int ilogb (T x); // Pro integrální typ

Parametry ilogb ()

Funkce ilogb () přebírá jediný argument, jehož ilogb je vypočítán.

ilogb () Vrátí hodnotu

Funkce ilogb () vrací integrální část logaritmu | x |, přičemž jako základ pro logaritmus používá FLT_RADIX.

  • Pokud je argument 0, vrátí FP_LOGB0.
  • Pokud je argument NaN, vrátí FP_LOGBNAN.
  • Pokud je argument nekonečný, vrátí INT_MAX.

Příklad 1: Jak funguje funkce ilogb () v 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; ) 

Když spustíte program, výstup bude:

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

Příklad 2: Funkce ilogb () s integrálním typem

 #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; ) 

Když spustíte program, výstup bude:

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

Zajímavé články...