ldexp
Multiplica um número de ponto flutuante por uma potência integral de dois.
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
Parâmetros
x
Valor de ponto flutuante.exp
Expoente inteiro.
Valor de retorno
A função ldexp retorna o valor de x * 2exp em caso de êxito. No estouro (dependendo do sinal de x), ldexp, retorna +/– HUGE_VAL. O valor errno é definido para ERANGE.
Para obter mais informações sobre errno e possíveis valores de retorno de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.
Comentários
Como C++ permite a sobrecarga, você pode chamar sobrecargas de ldexp que usam o tipo float ou long double. Em um programa C, ldexp sempre utiliza um double e um int, além de retornar um double.
Requisitos
Rotina |
Cabeçalho C |
Cabeçalho C++ |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_ldexp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 4.0, y;
int p = 3;
y = ldexp( x, p );
printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}
Saída
4.0 times two to the power of 3 is 32.0