A função frexp () em C ++ divide um número de ponto flutuante em seu significando binário.
O significando binário é um ponto flutuante cujo valor absoluto (mantissa) está no intervalo (0,5, 1) e um expoente inteiro para 2.
A função é definida no arquivo de cabeçalho.
Matematicamente,
x = significando binário * 2 expoente
onde, o expoente é armazenado no local apontado por exp e o significando Binário é o valor retornado por frexp ().
protótipo frexp () (a partir do padrão C ++ 11)
frexp duplo (duplo x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); frexp duplo (T x, int * exp); // Para tipo integral
A função frexp () recebe dois argumentos e retorna o valor de significando binário de tipo double
, float
ou long double
.
Parâmetros frexp ()
- x - O valor a ser decomposto.
- exp - O ponteiro para um inteiro onde o valor do expoente deve ser armazenado.
frexp () Valor de retorno
A função frexp () retorna o significando binário cujo valor absoluto está no intervalo (0,5, 1). Se x for zero, o significando e o expoente são zero.
valores de retorno frexp ()Parâmetro (x) | Significado Binário | Expoente |
---|---|---|
0 | 0 | 0 |
x> = 1 | Positivo | Positivo |
x <= -1 | Negativo | Positivo |
-1 <x <0 | Negativo | Negativo |
0 <x <1 | Positivo | Negativo |
Exemplo 1: Como a função frexp () funciona em 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; )
Quando você executa o programa, a saída será:
6,81 = 0,85125 * 2 3
Exemplo 2: função frexp () com 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; )
Quando você executa o programa, a saída será:
25 = 0,78125 * 2 5