C ++ frexp () - Biblioteca standard C ++

Funcția frexp () din C ++ rupe un număr în virgulă mobilă în semnificația sa binară.

Semnificația binară este un punct plutitor a cărui valoare absolută (mantisă) se află în intervalul (0,5, 1) și un exponent întreg pentru 2.

Funcția este definită în fișierul antet.

Matematic,

x = semnificant binar * 2 exponent

unde, exponentul este stocat în locația indicată de exp, iar semnificația binară este valoarea returnată de frexp ().

prototip frexp () (Începând cu standardul C ++ 11)

double frexp (double x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); dublu frexp (T x, int * exp); // Pentru tip integral

Funcția frexp () are două argumente și returnează valoarea significand binară de tip double, floatsau long double.

frexp () Parametri

  • x - Valoarea care trebuie descompusă.
  • exp - Pointerul către un număr întreg în care trebuie stocată valoarea exponentului.

frexp () Valoare returnată

Funcția frexp () returnează semnificația binară a cărei valoare absolută se află în intervalul (0,5, 1). Dacă x este zero, atât semnificația, cât și exponentul sunt zero.

frexp () returnează valori
Parametrul (x) Semnificativ binar Exponent
0 0 0
x> = 1 Pozitiv Pozitiv
x <= -1 Negativ Pozitiv
-1 <x <0 Negativ Negativ
0 <x <1 Pozitiv Negativ

Exemplul 1: Cum funcționează funcția frexp () în 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; ) 

Când rulați programul, ieșirea va fi:

 6,81 = 0,85125 * 2 3 

Exemplul 2: funcția frexp () cu tip integral

 #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; ) 

Când rulați programul, ieșirea va fi:

 25 = 0,78125 * 2 5 

Articole interesante...