ldexp
Multiplie un nombre à virgule flottante par une puissance intégrale de deux.
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
Paramètres
x
Valeur à virgule flottante.exp
Exposant entier.
Valeur de retour
La fonction ldexp retourne la valeur x * 2exp en cas de succès. En cas de dépassement et selon le signe de x, ldexp retourne +/– HUGE_VAL ; errno a la valeur ERANGE.
Pour plus d'informations sur errno et sur les valeurs de retour d'erreur possibles, voir errno, _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, ldexp accepte toujours double et int, et retourne double.
Configuration requise
Routine |
En-tête C |
En-tête C++ |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
Pour plus d'informations sur la compatibilité, voir 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