frexp() en C++

La función frexp() divide el número de punto flotante x en su significado binario, es decir, punto flotante con un valor absoluto entre [0.5, 1.0) y un exponente integral para 2.

x = significado * (2^exponente).

Solía ​​:

1. It is used to find significand which is always between 0.5 and 1.0
2. It is used to find exponent which is power of 2.

Sintaxis:

double frexp (double x);
float frexp (float x);
long double frexp (long double x);

    Parámetro:

  • La función frexp() toma un único argumento.
  • Devolver:

  • La función frexp() devuelve la mantisa binaria cuyo valor absoluto se encuentra en el intervalo [0.5, 1).
  • Si x es cero, tanto la significativa como el exponente son cero.

Error y excepción:

  1. Es obligatorio proporcionar ambos argumentos; de lo contrario, dará un error sin función coincidente para la llamada a ‘frexp()’ .
  2. Si pasamos una string como argumento, obtendremos un error sin función coincidente para llamar a ‘frexp (const char [n]).
    • Si x=0 entonces la significancia es cero y el exponente es cero
    • x >= 1 entonces el significado es un número positivo y el exponente es un número positivo
    • x <= -1 entonces el significado es un número negativo y el exponente es un número positivo
    • -1 < x < 0 entonces el significado es un número negativo y el exponente es un número negativo
    • 0 < x < 1 entonces la significada es un número positivo y el exponente es un número negativo

# CÓDIGO 1

// CPP implementation of 
// above function
#include <cmath>
#include <iostream>
  
using namespace std;
  
// Driver program
int main()
{
    double x = 5.35, significand;
    int exponent;
    significand = frexp(x, &exponent);
    cout << x << " = " << significand 
         << " * 2^" << exponent << endl;
  
    return 0;
}
Producción:

5.35 = 0.66875 * 2^3

# CÓDIGO 2

// CPP implementation of the 
// above function
#include <cmath>
#include <iostream>
  
using namespace std;
  
// Driver program
int main()
{
    double significand;
    int exponent, x = 5;
    significand = frexp(x, &exponent);
    cout << x << " = " << significand 
         << " * 2^" << exponent << endl;
  
    return 0;
}
Producción:

5 = 0.625 * 2^3

Publicación traducida automáticamente

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