Funktsioon frexp () jaotises C ++ jagab ujukomaarvu binaarseks tähenduseks.
Binaarne tähendus on ujuv punkt, mille absoluutväärtus (mantissa) asub intervallis (0,5, 1) ja täisarvu astendina 2.
Funktsioon on määratletud päisefailis.
Matemaatiliselt,
x = binaarne tähendus * 2 eksponent
kus eksponent salvestatakse expi osutatud asukohta ja binaarne sigand on väärtus, mille tagastab frexp ().
frexp () prototüüp (standardi C ++ 11 järgi)
topelt frexp (topelt x, int * exp); float frexp (float x, int * exp); pikk topelt frexp (pikk topelt x, int * exp); topelt frexp (T x, int * exp); // Integraaltüübi korral
Frexp () funktsiooni saab kaht argumenti ja tagastab binaarne significand väärtus tüüp double
, float
või long double
.
frexp () parameetrid
- x - lagundatav väärtus.
- exp - osutab täisarvule, kuhu eksponendi väärtus salvestatakse.
frexp () Tagastusväärtus
Funktsioon frexp () tagastab binaarse tähenduse, mille absoluutväärtus asub intervallis (0,5, 1). Kui x on null, on nii tähendus kui ka eksponent null.
frexp () tagastusväärtusedParameeter (x) | Binaarne tähendus | Eksponent |
---|---|---|
0 | 0 | 0 |
x> = 1 | Positiivne | Positiivne |
x <= -1 | Negatiivne | Positiivne |
-1 <x <0 | Negatiivne | Negatiivne |
0 <x <1 | Positiivne | Negatiivne |
Näide 1: Kuidas funktsioon frexp () töötab versioonis 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; )
Programmi käivitamisel on väljund järgmine:
6,81 = 0,85125 * 2 3
Näide 2: funktsioon integreeritud tüübiga frexp ()
#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; )
Programmi käivitamisel on väljund järgmine:
25 = 0,78125 * 2 5