scalbn
, scalbnf
, scalbnl
, scalbln
, , scalblnf
, scalblnl
Multiplica un número de punto flotante por una potencia integral de FLT_RADIX
.
Sintaxis
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
);
#define scalbn(X, INT) // Requires C11 or higher
double scalbln(
double x,
long exp
);
float scalblnf(
float x,
long exp
);
long double scalblnl(
long double x,
long exp
);
#define scalbln(X, LONG) // Requires C11 or higher
float scalbln(
float x,
long exp
); // C++ only
long double scalbln(
long double x,
long exp
); // C++ only
Parámetros
x
Valor de punto flotante.
exp
Exponente de entero.
Valor devuelto
Si son correctas, las funciones scalbn
devuelven el valor de x
* FLT_RADIX
exp. Al desbordar (dependiendo del signo de x
), scalbn
devuelve +/- HUGE_VAL
; el errno
valor se establece ERANGE
en .
Para obtener más información sobre errno
los valores devueltos de errores y posibles, veaerrno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
FLT_RADIX
se define en <float.h> como el radix de punto flotante nativo; en los sistemas binarios, tiene un valor de 2 y scalbn
es equivalente a ldexp
.
Dado que C++ permite sobrecargar, puede llamar a scalbn
y scalbln
las sobrecargas que toman y devuelven float
o long double
tipos. En un programa de C, a menos que use la <macro tgmath.h> para llamar a esta función, scalbn
siempre toma un double
y y int
devuelve un double
y , y siempre toma un double
long
y scalbln
y devuelve .double
Si usa las macros <tgmath.h>scalbn()
o scalbln
, el tipo del argumento determina qué versión de la función se selecciona. Consulte Matemáticas de tipo genérico para obtener más información.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Función | Encabezado C | Encabezado C++ |
---|---|---|
scalbn , scalbnf , scalbnl , scalbln , , scalblnf , scalblnl |
<math.h> | <cmath> |
scalbn o scalbln macro |
<tgmath.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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 );
}
Output
6.4 times FLT_RADIX to the power of 3 is 51.2
Consulte también
Compatibilidad con cálculos matemáticos y el punto flotante
frexp
ldexp
modf
, , modff
, modfl