C ++ ilogb () - C ++ standardna biblioteka

Funkcija ilogb () u C ++ vraća sastavni dio logaritma od | x |, koristeći FLT_RADIX kao osnovu za logaritam.

To je definirano u datoteci zaglavlja.

Matematički,

 x = značenje i * FLT_RADIXexponent

significand je vrijednost s pomičnim zarezom u rasponu (1.0, 2.0), x je argument proslijeđen ilogb (), a eksponent je cjelobrojna vrijednost koju vraća ilogb (). Vrijednost FLT_RADIX-a uglavnom je 2.

Vrijednost koju vraća ilogb () jedna je manja od eksponenta generiranog funkcijom frexp (), budući da je značenje u rasponu (1.0, 2.0) umjesto (0.5, 1.0) kao u frexp ().

ilogb () prototip (od standarda C ++ 11)

int ilogb (dvostruki x); int ilogb (plutajuće x); int ilogb (dugi dvostruki x); int ilogb (T x); // Za integralni tip

ilogb () Parametri

Funkcija ilogb () uzima jedan argument čiji se ilogb izračunava.

ilogb () Povratna vrijednost

Funkcija ilogb () vraća sastavni dio logaritma | x |, koristeći FLT_RADIX kao osnovu za logaritam.

  • Ako je argument 0, vraća FP_LOGB0.
  • Ako je argument NaN, vraća FP_LOGBNAN.
  • Ako je argument beskonačan, vraća INT_MAX.

Primjer 1: Kako funkcija ilogb () radi na 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; ) 

Kada pokrenete program, izlaz će biti:

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

Primjer 2: funkcija ilogb () s integralnim tipom

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

Kada pokrenete program, izlaz će biti:

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

Zanimljivi članci...