función ilogb() en C++ STL

La función ilogb(x) en C++ STL devuelve la parte integral del logaritmo de |x|, usando FLT_RADIX como base para el logaritmo. En general, el valor de FLT_RADIX es 2, por lo que ilogb() es equivalente a ilog2() (solo para valores positivos).
 

Sintaxis :  

ilogb(x)

Parámetro : la función acepta un único parámetro obligatorio x cuyo ilogb() se va a calcular. El tipo de datos puede ser double, float, long double o int. 
Valor devuelto: La función devuelve una parte integral del logaritmo de |x|, usando FLT_RADIX como base para el logaritmo. La función devuelve tres valores de excepción:  

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

Los siguientes programas ilustran la función anterior: 
Programa 1 :  

CPP

// C++ program to illustrate the ilogb()
// function when input is an integer
#include <cfloat>
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main()
{
    int result, x = 25;
 
    // Function to calculate ilogb(25)
    result = ilogb(x);
    cout << "ilogb (" << x << ") = " << result << endl;
 
    // Function to calculate ilogb(50)
    x = 50;
    result = ilogb(x);
    cout << "ilogb (" << x << ") = " << result << endl;
 
    return 0;
}
Producción: 

ilogb (25) = 4
ilogb (50) = 5

 

Programa 2
Programa para tipo no integral 

CPP

// C++ program to illustrate the ilogb()
// function when input is a double value
#include <cfloat>
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main()
{
    int result, x = 11.11;
 
    result = ilogb(x);
    cout << "ilogb (" << x << ") = " << result << endl;
 
    x = 41.11;
    result = ilogb(x);
    cout << "ilogb (" << x << ") = " << result << endl;
 
    return 0;
}
Producción: 

ilogb (11) = 3
ilogb (41) = 5

 

Programa 3 :  

CPP

// C++ program to illustrate the ilogb()
// function when input is 0
#include <cfloat>
#include <cmath>
#include <iostream>
#include <iostream>
 
using namespace std;
 
int main()
{
    int result, x = 0;
 
    result = ilogb(x);
    cout << "ilogb (" << x << ") = " << result << endl;
 
    return 0;
}
Producción: 

ilogb (0) = -2147483648

 

Publicación traducida automáticamente

Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *