A frexp () függvény a C ++ - ban lebegőpontos számot bináris szignifikánsára bont.
A bináris szignifikancia egy lebegőpont, amelynek abszolút értéke (mantissza) a (0,5, 1) intervallumban található, és egy egész szám kitevője 2-re.
A függvény a fejlécfájlban van meghatározva.
Matematikailag,
x = bináris szignifikancia * 2 kitevő
ahol az exponens az exp által mutatott helyen van tárolva, és a bináris szignifikancia a frexp () által visszaadott érték.
frexp () prototípus (C ++ 11 szabvány szerint)
dupla frexp (dupla x, int * exp); float frexp (float x, int * exp); hosszú dupla frexp (hosszú dupla x, int * exp); dupla frexp (T x, int * exp); // Integrál típusra
A frexp () függvény két argumentumot vesz fel, és visszaadja a típus bináris szignifikancia értékét double
, float
vagy long double
.
frexp () Paraméterek
- x - A lebontandó érték.
- exp - Egész számra mutató mutató, ahol az exponens értékét tárolni kell.
frexp () Visszatérési érték
A frexp () függvény visszaadja azt a bináris jelentést, amelynek abszolút értéke az (0,5, 1) intervallumban található. Ha x nulla, akkor a szignifikáns és az exponens egyaránt nulla.
frexp () visszatérési értékekParaméter (x) | Bináris jelentőség | Kitevő |
---|---|---|
0 | 0 | 0 |
x> = 1 | Pozitív | Pozitív |
x <= -1 | Negatív | Pozitív |
-1 <x <0 | Negatív | Negatív |
0 <x <1 | Pozitív | Negatív |
1. példa: Hogyan működik a frexp () függvény a C ++ nyelven?
#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; )
A program futtatásakor a kimenet a következő lesz:
6,81 = 0,85125 * 2 3
2. példa: integrx típusú frexp () függvény
#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; )
A program futtatásakor a kimenet a következő lesz:
25 = 0,78125 * 2 5