# frexp()

Declaration

`double frexp(double dX, int* ipExponent);`

Description:

This function transforms the value dX into a mantissa and exponent representation, where dX = Mantissa*2^(*ipExponent). The mantissa is the return value and *ipExponent is the exponent. The value dX is split up so that the mantissa that is returned is always greater than or equal to .5 and less than 1.0.

```float frexp(float, int*);
double frexp(double, int*);
long double frexp(long double, int*);```

Related Functions

```float frexpf(float, int*);
long double frexpl(long double, int*);```

* Note: Since C does not allow function overloading, these other versions of this function exist.

 Domain (-∞, ∞) Range (-∞, ∞) X Integers Periodicity None Symmetry None Asymptotes None

Example

```#include <iostream>
#include <cmath>

int main() {
using namespace std;

double dX = 1.2;
int iExponent;
cout << "x = " << dX << "  Mantissa = " << frexp(dX, &iExponent);
cout << "  Exponent = " << iExponent << endl;

dX = 6.0;
cout << "x = " << dX << "  Mantissa = " << frexp(dX, &iExponent);
cout << "  Exponent = " << iExponent << endl;

return 0;
}```

Output: