función ldexp() en C/C++

El ldexp() es una función integrada en C/C++ que da el producto de cualquier variable x y 2 elevada a la potencia de exp tomando dos argumentos x y exp, es decir, x * 2^exp

Sintaxis:

float ldexp (float x, int exp)
double ldexp (double x, int exp)
long double ldexp (long double x, int exp)
double ldexp (T x, int exp)

Parámetro: La función acepta dos parámetros obligatorios x y exp que especifican las dos variables descritas en la definición.

Valor devuelto: la función devuelve el valor de la expresión x * 2^exp . Devuelve un valor de tipo long double, float o double.

Los siguientes programas ilustran la función anterior.

Programa 1:

// C++ program to illustrate the
// ldexp() function
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    double x = 6, result;
    int exp = 2;
  
    // It returns x*(2^exp)
    result = ldexp(x, exp);
  
    // print the result
    cout << "ldexp(x, exp) = " << result << endl;
    return 0;
}
Producción:

ldexp(x, exp) = 24

Programa 2:

// C++ program to illustrate the
// ldexp() function
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    double result;
    int x = 20, exp = 9;
    // It returns x*(2^exp)
    result = ldexp(x, exp);
  
    // prints the result
    cout << "ldexp(x, exp) = " << result << endl;
    return 0;
}
Producción:

ldexp(x, exp) = 10240

Errores y excepciones: si la magnitud del resultado es demasiado grande para ser representada por un valor del tipo de retorno, la función devuelve HUGE_VAL (o HUGE_VALF o HUGE_VALL) con el signo adecuado y se produce un error de rango de desbordamiento .

Los siguientes programas ilustran el error anterior.

// C++ program to illustrate the
// ldexp() function
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    double result;
    int x = 20, exp = 10000;
  
    // It returns x*(2^exp)
    result = ldexp(x, exp);
  
    // prints the result
    cout << "ldexp(x, exp) = " << result << endl;
    return 0;
}
Producción:

ldexp(x, exp) = inf

Publicación traducida automáticamente

Artículo escrito por AmanSrivastava1 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 *