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
Parameter | Description |
---|---|
x | A double, float, long double, or any integral type value. |
exp | The exponent is stored at this address. The value stored in this address is an integer. |
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.