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
, float
o 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