Funkce frexp () v C ++ rozdělí číslo s plovoucí desetinnou čárkou na jeho binární význam.
Binární význam je plovoucí desetinná čárka, jejíž absolutní hodnota (mantisa) leží v intervalu (0,5, 1) a celočíselný exponent pro 2.
Funkce je definována v hlavičkovém souboru.
Matematicky,
x = exponent binárního významu * 2
kde exponent je uložen v místě, na které ukazuje exp a Binární význam je hodnota vrácená frexp ().
frexp () prototyp (od standardu C ++ 11)
double frexp (double x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); double frexp (T x, int * exp); // Pro integrální typ
Funkce frexp () trvá dva argumenty a vrací binární významovou hodnotu typu double
, float
nebo long double
.
parametry frexp ()
- x - Hodnota, která má být rozložena.
- exp - Ukazatel na celé číslo, kde má být uložena hodnota exponenta.
frexp () Návratová hodnota
Funkce frexp () vrací binární význam, jehož absolutní hodnota leží v intervalu (0,5, 1). Pokud je x nula, znaménko i exponent jsou nulové.
návratové hodnoty frexp ()Parametr (x) | Binární význam | Exponent |
---|---|---|
0 | 0 | 0 |
x> = 1 | Pozitivní | Pozitivní |
x <= -1 | Negativní | Pozitivní |
-1 <x <0 | Negativní | Negativní |
0 <x <1 | Pozitivní | Negativní |
Příklad 1: Jak funguje funkce frexp () v C ++?
#include #include using namespace std; int main () ( double x = 6.81, significand; int *exp; significand = frexp(x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; )
Když spustíte program, výstup bude:
6,81 = 0,85125 * 2 3
Příklad 2: funkce frexp () s integrálním typem
#include #include using namespace std; int main () ( double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; )
Když spustíte program, výstup bude:
25 = 0,78125 * 2 5