C ++ frexp () - C ++ standardna knjižnica

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, floatili 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 vrijednosti
Parametar (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 

Zanimljivi članci...