1. NOM▲
frexp, frexpf, frexpl - Conversion de réel en fraction normalisée
2. 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
3. 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.
4. 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.
5. ERREURS ▲
Aucune erreur ne se produit.
6. CONFORMITÉ ▲
C99, POSIX.1-2001. La variante renvoyant un double est également conforme à SVr4, BSD 4.3 et C89.
7. 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
7.1. 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);
}
8. VOIR AUSSI ▲
9. COLOPHON ▲
Cette page fait partie de la publication 3.52 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/.
10. 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 à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».