Scroll to navigation

frexp(3) Library Functions Manual frexp(3)

NOM

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

BIBLIOTHÈQUE

Bibliothèque de math (libm, -lm)

SYNOPSIS

#include <math.h>
double frexp(double x, int *exp);
float frexpf(float x, int *exp);
long double frexpl(long double x, int *exp);

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

frexpf(), frexpl() :


_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

Ces fonctions sont utilisées pour convertir le nombre x en une fraction normalisée et un exposant qui est stocké dans exp.

VALEUR RENVOYÉE

Ces fonctions renvoient la fraction normalisée. Si l'argument x est non nul, la fraction normalisée est x multiplié par une puissance de deux et sa valeur absolue est comprise dans l'intervalle 1/2 (inclus) et 1 (exclu), c'est-à-dire [0,5-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 survient.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).

Interface Attribut Valeur
frexp(), frexpf(), frexpl() Sécurité des threads MT-Safe

STANDARDS

C99, POSIX.1-2001, POSIX.1-2008.

La variante renvoyant double est également conforme à SVr4, 4.3BSD.

EXEMPLES

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 <float.h>
#include <math.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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Cédric Boutillier <cedric.boutillier@gmail.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

5 février 2023 Pages du manuel de Linux 6.03