frexp
, , frexpf
frexpl
Získá mantisu a exponent čísla s plovoucí desetinnou čárkou.
Syntaxe
double frexp(
double x,
int *expptr
);
float frexpf(
float x,
int * expptr
);
long double frexpl(
long double x,
int * expptr
);
#define frexpl(X, INT_PTR) // Requires C11 or higher
float frexp(
float x,
int * expptr
); // C++ only
long double frexp(
long double x,
int * expptr
); // C++ only
Parametry
x
Hodnota s plovoucí desetinou čárkou
expptr
Ukazatel na uloženou celočíselnou exponent.
Vrácená hodnota
frexp
vrátí mantisu. Pokud x
je 0, funkce vrátí hodnotu 0 pro mantisu i exponent. Pokud expptr
ano NULL
, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tato funkce nastaví errno
EINVAL
hodnotu 0 a vrátí hodnotu 0.
Poznámky
Funkce frexp
rozdělí hodnotu s plovoucí desetinnou čárkou (x
) na mantisu (m
) a exponent (n
), aby absolutní hodnota m
byla větší nebo rovna 0,5 a menší než 1,0 am
x
= * 2.n
Celočíselná exponent n
je uložena v umístění, na které expptr
odkazuje .
C++ umožňuje přetížení, takže můžete volat přetížení frexp
. Pokud v programu jazyka C nepoužíváte <makro tgmath.h> k volání této funkce, frexp
vždy vezme double
a int
ukazatel a vrátí hodnotu double
.
Pokud použijete <makro tgmath.h>frexp()
, typ argumentu určuje, která verze funkce je vybrána. Podrobnosti najdete v tématu Matematika pro obecné typy.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Function | Požadovaný hlavičkový soubor |
---|---|
frexp , , frexpf frexpl |
<math.h> |
frexp makro |
<tgmath.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x, y;
int n;
x = 16.4;
y = frexp( x, &n );
printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
frexp( 16.400000, &n ) = 0.512500, n = 5
Viz také
Podpora pro matematiku a plovoucí desetinou čárku
ldexp
modf
, , modff
modfl