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_RADIXexp. Al desbordar (dependiendo del signo de x), scalbn devuelve +/- HUGE_VAL; el errno valor se establece ERANGEen .

Para obtener más información sobre errno los valores devueltos de errores y posibles, veaerrno , _doserrno, _sys_errlisty _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 doubley , y siempre toma un doublelong 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 );
}

Salida

6.4 times FLT_RADIX to the power of 3 is 51.2

Consulte también

Compatibilidad con matemáticas y punto flotante
frexp
ldexp
modf, modff, modfl