# frexp : <math.h> library function

The function double frexp(double x, int *exponent); breaks the floating point number x into its mantisa (an absolute floating point number between 0.5(included) and 1.0(excluded)) and an integer exponent of 2. It decompose x such that:
x = mantisa * 2exponent

## Function prototype of frexp

double frexp(double x, int *exponent);
• x : A floating point value to be decomposed.
• exponent : A pointer to an integer where the value of the exponent to be stored.

## Return value of frexp

It returns the value of mantissa and also stores the exponent of 2 in the integer pointer passed to it as argument.
If x is zero, both mantisa and exponent are zero.
If x is negative, the mantisa returned by this function is negative.

## C program to show the use of frexp function

The following program shows the use of frexp function to decompose a floating point number.

```#include <stdio.h>
#include <math.h>

int main ()
{
double value, fraction;
int exponent;

printf("Enter a number\n");
scanf("%lf", &value);

fraction = frexp(value , &exponent);
printf("%lf = %lf * 2^%d\n", value, fraction, exponent);

return 0;
}
```

Program Output
```Enter a number
512
512.000000 = 0.500000 * 2^10
```