C ++ frexp () - Biblioteca C ++ Padrão

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, floatou 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 

Artigos interessantes...