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 <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]> et Cédric Boutillier <[email protected]>
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 à [email protected]

Recommended readings

Pages related to frexp you should read also: