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
, float
sau 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ă valoriParametrul (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