Loading

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

       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@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.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> ».

                               29 septembre 2008