ldexp() function in C/C++
Last Updated :
21 Aug, 2018
The ldexp() is a built-in function in C/C++ gives the product of any variable x and 2 raised to the power of exp by taking two arguments x and exp i.e., x * 2^exp
Syntax:
float ldexp (float x, int exp)
double ldexp (double x, int exp)
long double ldexp (long double x, int exp)
double ldexp (T x, int exp)
Parameter: The function accepts two mandatory parameter x and exp which specifies the two variables described in the definition.
Return Value: The function returns the value of the expression x * 2^exp. It returns a value of type long double, float or double.
Below programs illustrates the above function.
Program 1:
#include <bits/stdc++.h>
using namespace std;
int main()
{
double x = 6, result;
int exp = 2;
result = ldexp (x, exp );
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
|
Output:
ldexp(x, exp) = 24
Program 2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
double result;
int x = 20, exp = 9;
result = ldexp (x, exp );
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
|
Output:
ldexp(x, exp) = 10240
Errors and Exceptions: If the magnitude of the result is too large to be represented by a value of the return type, the function returns HUGE_VAL (or HUGE_VALF or HUGE_VALL) with the proper sign, and an overflow range error occurs.
Below programs illustrates the above error.
#include <bits/stdc++.h>
using namespace std;
int main()
{
double result;
int x = 20, exp = 10000;
result = ldexp (x, exp );
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
|
Output:
ldexp(x, exp) = inf
Share your thoughts in the comments
Please Login to comment...