ldexp
, , ldexpf
ldexpl
Multiplie un nombre à virgule flottante par une puissance intégrale de deux.
Syntaxe
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
Paramètres
x
Valeur à virgule flottante.
exp
Exposant entier.
Valeur retournée
Les ldexp
fonctions retournent la valeur * 2exp
en cas de x
réussite. En cas de dépassement, et en fonction du signe de x
, ldexp
retourne +/- HUGE_VAL
; la errno
valeur est définie ERANGE
sur .
Pour plus d’informations sur errno
les valeurs de retour d’erreur possibles, consultezerrno
, , _doserrno
_sys_errlist
et _sys_nerr
.
Notes
C++ autorisant la surcharge, vous pouvez appeler des surcharges de ldexp
qui acceptent des types float
ou long double
. Dans un programme C, sauf si vous utilisez la <macro tgmath.h> pour appeler cette fonction, ldexp
prend toujours un double
et un int
et retourne un double
.
Si vous utilisez la macro <tgmath.h>ldexp()
, le type de l’argument détermine la version de la fonction sélectionnée. Pour plus d’informations, consultez les mathématiques génériques de type.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête C | En-tête C++ |
---|---|---|
ldexp , , ldexpf ldexpl |
<math.h> | <cmath> |
Macro ldexp |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibilité.
Exemple
// 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 );
}
Sortie
4.0 times two to the power of 3 is 32.0
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
frexp
modf
, , modff
modfl