Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Obtient la mantisse et l’exposant d’un nombre à virgule flottante.
Syntaxe
double frexp(
double x,
int *expptr
);
float frexpf(
float x,
int * expptr
);
long double frexpl(
long double x,
int * expptr
);
#define frexpl(X, INT_PTR) // Requires C11 or later
float frexp(
float x,
int * expptr
); // C++ only
long double frexp(
long double x,
int * expptr
); // C++ only
Paramètres
x
Valeur à virgule flottante.
expptr
Pointeur désignant l’exposant entier stocké.
Valeur retournée
frexp retourne la mantisse. Si x a la valeur 0, la fonction retourne 0 pour la mantisse et l’exposant. Si expptr c’est NULLle cas, le gestionnaire de paramètres non valide est appelé comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction affecte à errno la valeur EINVAL et retourne 0.
Notes
La frexp fonction décompose la valeur à virgule flottante (x) en mantissa (m) et un exposant (n), de sorte que la valeur absolue est m supérieure ou égale à 0,5 et inférieure à 1,0 etm x = * 2.n L’exposant entier n est stocké à l’emplacement désigné par expptr.
C++ autorisant la surcharge, vous pouvez appeler des surcharges de frexp. Dans un programme C, sauf si vous utilisez la <macro tgmath.h> pour appeler cette fonction, frexp prend toujours un double pointeur et int retourne un double.
Si vous utilisez la macro <tgmath.h>frexp(), 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 requis |
|---|---|
frexp, , frexpffrexpl |
<math.h> |
Macro frexp |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x, y;
int n;
x = 16.4;
y = frexp( x, &n );
printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
frexp( 16.400000, &n ) = 0.512500, n = 5
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
ldexp
modf, , modffmodfl