Available in

(3) (3)/fr (3)/ja

Contents

NOM

frexp, frexpf, frexpl − Conversion de réel en fraction normalisée

SYNOPSIS

#include <math.h>

double frexp(double x, int *exp);
float frexpf(float
x, int *exp);
long double frexpl(long double
x, int *exp);

Effectuez l’édition des liens avec l’option −lm.

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

frexpf(), frexpl(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE>= 600 || _ISOC99_SOURCE ; ou cc −std=c99

DESCRIPTION

La fonction frexp() est utilisée pour convertir le nombre x en une fraction normalisée et un exposant qui est stocké dans exp.

VALEUR RENVOYÉE

La fonction frexp() renvoie la fraction normalisée. Si l’argument x est non nul, la fraction normalisée est x multiplié par 2^exp. La valeur absolue de la fraction normalisée est comprise dans l’intervalle compris entre 1/2 (inclus) et 1 (exclu), c’est−à−dire [1/2, 1[.

Si x est nul, la fraction normalisée vaut zéro et exp prend la valeur zéro.

Si x est un NaN (pas un nombre : « Not a Number »), un NaN est renvoyé et la valeur de *exp n’est pas spécifiée.

Si x est une valeur infinie positive (respectivement, négative), une valeur infinie positive (respectivement, négative) est renvoyée et la valeur de *exp n’est pas spécifiée.

ERREURS

Aucune erreur ne se produit.

CONFORMITÉ

C99, POSIX.1−2001. La variante renvoyant un double est également conforme à SVr4, BSD 4.3 et C89.

EXEMPLE

Le programme ci−dessus affiche les résultats comme ci−dessous :

$ ./a.out 2560
frexp(2560, &e) = 0.625: 0.625 * 2^12 = 2560
$ ./a.out −4
frexp(−4, &e) = −0.5: −0.5 * 2^3 = −4

Source du programme
#include <math.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>

int
main(int argc, char *argv[])
{
double x, r;
int exp;

x = strtod(argv[1], NULL);
r = frexp(x, &exp);

printf("frexp(%g, &e) = %g: %g * %d^%d = %g\n",
x, r, r, FLT_RADIX, exp, x);
exit(EXIT_SUCCESS);
} /* main */

VOIR AUSSI

ldexp(3), modf(3)

COLOPHON

Cette page fait partie de la publication 3.23 du projet man−pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l’adresse http://www.kernel.org/doc/man−pages/.

TRADUCTION

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/>; entre 1996 et 2003, puis par Alain Portal <aportal AT univ−montp2 DOT fr> jusqu’en 2006, et mise à disposition sur http://manpagesfr.free.fr/.

Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Florentin Duneau <fduneau [AT] gmail.com> et l’équipe francophone de traduction de Debian.

Veuillez signaler toute erreur de traduction en écrivant à <debian−l10n−french [AT] lists.org> ou par un rapport de bogue sur le paquet manpages−fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man −L C <section> <page_de_man> ».

COMMENTS

blog comments powered by Disqus