In this C++ tutorial, you will learn how to break a given (float) number to its binary significand and an integer exponent for 2 using frexp() function of cmath, with syntax and examples.

## C++ frexp()

C++ frexp() breaks given (float) number to its binary significand and an integer exponent for 2.

If x is argument to frexp(), then we find binary significand and exponent for 2 as given by the following equation.

`x = binary significand * 2^exponent`

## Syntax

The syntax of C++ frexp() is

`frexp(x, exp)`

where

Returns

The return value depends on the type of value passed for parameter x.

The return value of frexp(x) is

• double if x is double or integral type.
• float if x is float.
• long double if x is long double.

The synopsis of frexp() function is

```double frexp(double x, int* exp);
float frexp(float x, int* exp);
long double frexp(long double x, int* exp);
double frexp(T x, int* exp); // for integral type argument values```

frexp() is a function of cmath library. Include cmath library in the program, if using frexp() function.

## Example

In this example, we read a value from user into variable x, and find the value of binary significand and exponent for 2, using frexp() function.

C++ Program

```#include <iostream>
#include<cmath>
using namespace std;

int main() {
double x;
cout << "Enter a number     : ";
cin >> x;

int exp;
double result = frexp(x, &exp);
cout << "Binary Significand : " << result << endl;
cout << "Exponent           : " << exp << endl;
}```

Output

```Enter a number     : 8
Binary Significand : 0.5
Exponent           : 4
Program ended with exit code: 0```
```Enter a number     : 15
Binary Significand : 0.9375
Exponent           : 4
Program ended with exit code: 0```
```Enter a number     : -5
Binary Significand : -0.625
Exponent           : 3
Program ended with exit code: 0```

## Conclusion

In this C++ Tutorial, we learned the syntax of C++ frexp(), and how to use this function to find the binary significand and exponent for 2, with the help of examples.