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 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
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> |
ldexp Macro |
<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