scalbn
, , scalbnf
, scalbln
scalbnl
, , scalblnf
scalblnl
Multiplie un nombre à virgule flottante par une puissance intégrale de FLT_RADIX
.
Syntaxe
double scalbn(
double x,
int exp
);
float scalbn(
float x,
int exp
); // C++ only
long double scalbn(
long double x,
int exp
); // C++ only
float scalbnf(
float x,
int exp
);
long double scalbnl(
long double x,
int exp
);
#define scalbn(X, INT) // Requires C11 or higher
double scalbln(
double x,
long exp
);
float scalblnf(
float x,
long exp
);
long double scalblnl(
long double x,
long exp
);
#define scalbln(X, LONG) // Requires C11 or higher
float scalbln(
float x,
long exp
); // C++ only
long double scalbln(
long double x,
long exp
); // C++ only
Paramètres
x
Valeur à virgule flottante.
exp
Exposant entier.
Valeur retournée
Les fonctions scalbn
retournent la valeur de x
* FLT_RADIX
exp en cas de succès. En cas de dépassement (en fonction du signe de x
), scalbn
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
FLT_RADIX
est défini dans <float.h> comme radix à virgule flottante native ; sur les systèmes binaires, il a la valeur 2 et scalbn
équivaut à ldexp
.
Étant donné que C++ autorise la surcharge, vous pouvez appeler scalbn
et scalbln
surcharges qui prennent et retournent float
ou long double
types. Dans un programme C, sauf si vous utilisez la <macro tgmath.h> pour appeler cette fonction, scalbn
prend toujours une double
et un int
et retourne un double
, et scalbln
prend toujours un double
et un long
et retourne un double
.
Si vous utilisez les <macros ou scalbln
tgmath.h>scalbn()
, 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
Fonction | En-tête C | En-tête C++ |
---|---|---|
scalbn , , scalbnf , scalbln scalbnl , , scalblnf scalblnl |
<math.h> | <cmath> |
scalbn ou scalbln macro |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 6.4, y;
int p = 3;
y = scalbn( x, p );
printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}
Sortie
6.4 times FLT_RADIX to the power of 3 is 51.2
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
frexp
ldexp
modf
, , modff
modfl