scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl
Multiplica um número de ponto flutuante por uma potência integral de FLT_RADIX.
double scalbn( double x, int exp ); float scalbn( float x, int exp ); // C++ only long double scalbn( long double x, int exp ); // C++ only float scalbnf( float x, int exp ); long double scalbnl( long double x, int exp ); double scalbln( double x, long exp ); float scalbln( float x, long exp ); // C++ only long double scalbln( long double x, long exp ); // C++ only float scalblnf( float x, long exp ); long double scalblnl( long double x, long exp );
Parâmetros
x
Valor de ponto flutuante.exp
Expoente inteiro.
Valor de retorno
As funções scalbn retornam o valor de x * FLT_RADIXexp quando bem-sucedidas. No estouro (dependendo do sinal de x), scalbn 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
FLT_RADIX é definido em <float.h> como a base de ponto flutuante nativo; em sistemas binários, tem um valor de 2 e scalbn é equivalente a ldexp.
Como o C++ permite sobrecarga, é possível chamar sobrecargas de scalbn e scalbln que peguem e retornem tipos float ou long double. Em um programa C, scalbn sempre pega um double e um int e retorna um double, e scalbln sempre pega um double e um long e retorna um double.
Requisitos
Função |
Cabeçalho C |
Cabeçalho C++ |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
Para obter informações adicionais sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 6.4, y;
int p = 3;
y = scalbn( x, p );
printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}
Saída
6.4 times FLT_RADIX to the power of 3 is 51.2