Compartir a través de


ldexp, , ldexpf, ldexpl

Multiplica un número de punto flotante por una potencia integral de dos.

Sintaxis

double ldexp(
   double x,
   int exp
);
float ldexpf(
   float x,
   int exp
);
long double ldexpl(
   long double x,
   int exp
);
#define ldexp(X, INT) // Requires C11 or higher

float ldexp(
   float x,
   int exp
);  // C++ only
long double ldexp(
   long double x,
   int exp
);  // C++ only

Parámetros

x
Valor de punto flotante.

exp
Exponente de entero.

Valor devuelto

Las ldexp funciones devuelven el valor de x * 2exp si se ejecuta correctamente. En desbordamiento, y en función del signo de x, ldexp 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

Como C++ permite las sobrecargas, puede llamar a las sobrecargas de ldexp que toman los tipos float y long double. En un programa de C, a menos que use la <macro tgmath.h> para llamar a esta función, ldexp siempre toma y double y int devuelve .double

Si usa la macro <tgmath.h>ldexp(), 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

Routine Encabezado C Encabezado C++
ldexp, , ldexpf, ldexpl <math.h> <cmath>
ldexpMacro <tgmath.h>

Para obtener información sobre la compatibilidad, consulte Compatibilidad.

Ejemplo

// 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 );
}

Output

4.0 times two to the power of 3 is 32.0

Consulte también

Compatibilidad con cálculos matemáticos y el punto flotante
frexp
modf, , modff, modfl