Scroll to navigation

FREXP(3) Manuel du programmeur Linux FREXP(3)

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 (consultez feature_test_macros(7)) :
 
frexpf(), frexpl() :
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
 
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 (resp. négative), une valeur infinie positive (resp. 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-dessous affiche les résultats suivants :
 

$ ./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); }

VOIR AUSSI

ldexp(3), modf(3)

COLOPHON

Cette page fait partie de la publication 3.44 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

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).
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> ».
20 septembre 2010