Partager via


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 ERANGEsur .

Pour plus d’informations sur errno les valeurs de retour d’erreur possibles, consultezerrno , , _doserrno_sys_errlistet _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 mathématique et à virgule flottante
frexp
modf, modff, modfl