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

La función frexp () en C ++ divide un número de punto flotante en su significado binario.

El significado binario es un punto flotante cuyo valor absoluto (mantisa) se encuentra en el intervalo (0.5, 1) y un exponente entero para 2.

La función se define en el archivo de encabezado.

Matemáticamente,

x = significado binario * 2 exponente

donde, exponente se almacena en la ubicación apuntada por exp y el significado binario es el valor devuelto por frexp ().

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

doble frexp (doble x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); doble frexp (T x, int * exp); // Para tipo integral

La función frexp () toma dos argumentos y devuelve el valor de significación binario de tipo double, floato long double.

Parámetros de frexp ()

  • x : el valor que se descompondrá.
  • exp : el puntero a un número entero donde se almacenará el valor del exponente.

frexp () Valor de retorno

La función frexp () devuelve el significado binario cuyo valor absoluto se encuentra en el intervalo (0.5, 1). Si x es cero, tanto el significante como el exponente son cero.

valores de retorno de frexp ()
Parámetro (x) Significando binario Exponente
0 0 0
x> = 1 Positivo Positivo
x <= -1 Negativo Positivo
-1 <x <0 Negativo Negativo
0 <x <1 Positivo Negativo

Ejemplo 1: ¿Cómo funciona la función frexp () en C ++?

 #include #include using namespace std; int main () ( double x = 6.81, significand; int *exp; significand = frexp(x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Cuando ejecute el programa, la salida será:

 6,81 = 0,85125 * 2 3 

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

 #include #include using namespace std; int main () ( double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Cuando ejecute el programa, la salida será:

 25 = 0,78125 * 2 5 

Articulos interesantes...