Funkcija frexp () u C ++-u razbija broj s pomičnim zarezom u svoj binarni znak.
Binarni znak je plutajuća točka čija se apsolutna vrijednost (mantissa) nalazi u intervalu (0,5, 1) i cjelobrojni eksponent za 2.
Funkcija je definirana u zaglavnoj datoteci.
Matematički,
x = Binarni značaj i * 2 eksponenta
gdje je eksponent pohranjen na mjestu na koje ukazuje exp, a binarni je značaj vrijednost koju je vratio frexp ().
prototip frexp () (od standarda C ++ 11)
dvostruki frexp (dvostruki x, int * exp); plutajući frexp (float x, int * exp); dugi dvostruki frexp (dugi dvostruki x, int * exp); dvostruki frexp (T x, int * exp); // Za integralni tip
Funkcija frexp () uzima dva argumenta i vraća binarno značenje i vrijednost tipa double
, float
ili long double
.
frexp () Parametri
- x - Vrijednost koja se razlaže.
- exp - pokazivač na cijeli broj u kojem treba pohraniti vrijednost eksponenta.
frexp () Povratna vrijednost
Funkcija frexp () vraća binarni znak i čija apsolutna vrijednost leži u intervalu (0,5, 1). Ako je x nula, i značenje i eksponent su nula.
frexp () povratne vrijednostiParametar (x) | Binarni označitelj | Eksponent |
---|---|---|
0 | 0 | 0 |
x> = 1 | Pozitivan | Pozitivan |
x <= -1 | Negativan | Pozitivan |
-1 <x <0 | Negativan | Negativan |
0 <x <1 | Pozitivan | Negativan |
Primjer 1: Kako funkcija frexp () radi u 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; )
Kada pokrenete program, izlaz će biti:
6,81 = 0,85125 * 2 3
Primjer 2: funkcija frexp () s integralnim tipom
#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; )
Kada pokrenete program, izlaz će biti:
25 = 0,78125 * 2 5