De functie frexp () in C ++ breekt een drijvende-kommagetal in zijn binaire significantie.
De binaire significantie is een drijvende komma waarvan de absolute waarde (mantisse) in het interval (0,5, 1) ligt en een integer exponent voor 2.
De functie is gedefinieerd in het header-bestand.
Wiskundig,
x = binaire significantie * 2 exponent
waar, exponent wordt opgeslagen op de locatie aangeduid met exp en de binaire significantie de waarde is die wordt geretourneerd door frexp ().
frexp () prototype (vanaf C ++ 11-standaard)
dubbele frexp (dubbele x, int * exp); float frexp (float x, int * exp); lange dubbele frexp (lange dubbele x, int * exp); dubbele frexp (T x, int * exp); // Voor integraal type
De functie frexp () heeft twee argumenten en retourneert de binaire significantiewaarde van het type double
, float
of long double
.
frexp () Parameters
- x - De waarde die moet worden ontleed.
- exp - De pointer naar een geheel getal waar de waarde van exponent moet worden opgeslagen.
frexp () Retourwaarde
De functie frexp () retourneert de binaire significantie waarvan de absolute waarde in het interval (0,5, 1) ligt. Als x nul is, zijn zowel de significant als de exponent nul.
frexp () retourneert waardenParameter (x) | Binair Significand | Exponent |
---|---|---|
0 | 0 | 0 |
x> = 1 | Positief | Positief |
x <= -1 | Negatief | Positief |
-1 <x <0 | Negatief | Negatief |
0 <x <1 | Positief | Negatief |
Voorbeeld 1: hoe werkt de functie frexp () in 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; )
Wanneer u het programma uitvoert, is de uitvoer:
6,81 = 0,85125 * 2 3
Voorbeeld 2: frexp () functie met integraal type
#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; )
Wanneer u het programma uitvoert, is de uitvoer:
25 = 0,78125 * 2 5