C ++ ilogb () - Biblioteca estándar de C ++

La función ilogb () en C ++ devuelve la parte integral del logaritmo de | x |, usando FLT_RADIX como base para el logaritmo.

Esto se define en el archivo de encabezado.

Matemáticamente,

 x = significando * FLT_RADIXexponent

significand es un valor de punto flotante en el rango (1.0, 2.0), x es el argumento pasado a ilogb () y exponent es el valor entero devuelto por ilogb (). El valor de FLT_RADIX es generalmente 2.

El valor devuelto por ilogb () es uno menos que el exponente generado por la función frexp (), ya que el significando está en el rango (1.0, 2.0) en lugar de (0.5, 1.0) como en frexp ().

prototipo ilogb () (A partir del estándar C ++ 11)

int ilogb (doble x); int ilogb (flotar x); int ilogb (doble x larga); int ilogb (T x); // Para tipo integral

Parámetros de ilogb ()

La función ilogb () toma un solo argumento cuyo ilogb se calcula.

ilogb () Valor de retorno

La función ilogb () devuelve la parte integral del logaritmo de | x |, usando FLT_RADIX como base para el logaritmo.

  • Si el argumento es 0, devuelve FP_LOGB0.
  • Si el argumento es NaN, devuelve FP_LOGBNAN.
  • Si el argumento es infinito, devuelve INT_MAX.

Ejemplo 1: ¿Cómo funciona la función ilogb () en 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; ) 

Cuando ejecute el programa, la salida será:

 ilogb (16.81) = 4 16.81 = 1.05062 * 2 4 

Ejemplo 2: función ilogb () con tipo integral

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

Cuando ejecute el programa, la salida será:

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

Articulos interesantes...