C ++ ilogb () - C ++ standardowa biblioteka

Funkcja ilogb () w C ++ zwraca integralną część logarytmu | x |, używając FLT_RADIX jako podstawy logarytmu.

Jest to zdefiniowane w pliku nagłówkowym.

Matematycznie,

 x = istotna * FLT_RADIXexponent

istotna to wartość zmiennoprzecinkowa z zakresu (1.0, 2.0), x to argument przekazany do ilogb (), a wykładnik to liczba całkowita zwrócona przez ilogb (). Wartość FLT_RADIX zwykle wynosi 2.

Wartość zwracana przez ilogb () jest o jeden mniejsza niż wykładnik generowany przez funkcję frexp (), ponieważ mantysa jest w zakresie (1,0, 2,0) zamiast (0,5, 1,0) jak w frexp ().

ilogb () prototyp (w standardzie C ++ 11)

int ilogb (podwójne x); int ilogb (float x); int ilogb (długie podwójne x); int ilogb (T x); // Dla typu całkowitego

ilogb () Parametry

Funkcja ilogb () przyjmuje pojedynczy argument, którego ilogb jest obliczane.

ilogb () Wartość zwracana

Funkcja ilogb () zwraca integralną część logarytmu | x |, używając FLT_RADIX jako podstawy logarytmu.

  • Jeśli argumentem jest 0, zwraca FP_LOGB0.
  • Jeśli argument ma wartość NaN, zwraca FP_LOGBNAN.
  • Jeśli argument jest nieskończony, zwraca INT_MAX.

Przykład 1: Jak działa funkcja ilogb () w 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; ) 

Po uruchomieniu programu wynik będzie następujący:

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

Przykład 2: funkcja ilogb () z typem całkowitym

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

Po uruchomieniu programu wynik będzie następujący:

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

Interesujące artykuły...