ldexp()是C / C++中的内置函数,通过使用两个参数x和exp,即x * 2 ^ exp ,可以将任何变量x和2的乘积提高到exp的幂
句法:
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)
参数:该函数接受两个强制性参数x和exp ,它们指定定义中描述的两个变量。
返回值:该函数返回表达式x * 2 ^ exp的值。它返回类型为long double,float或double的值。
下面的程序说明了上述函数。
程序1:
// C++ program to illustrate the
// ldexp() function
#include
using namespace std;
int main()
{
double x = 6, result;
int exp = 2;
// It returns x*(2^exp)
result = ldexp(x, exp);
// print the result
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
输出:
ldexp(x, exp) = 24
程式2:
// C++ program to illustrate the
// ldexp() function
#include
using namespace std;
int main()
{
double result;
int x = 20, exp = 9;
// It returns x*(2^exp)
result = ldexp(x, exp);
// prints the result
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
输出:
ldexp(x, exp) = 10240
错误和异常:如果结果的大小太大而无法用返回类型的值表示,则该函数将返回带有正确符号的HUGE_VAL (或HUGE_VALF或HUGE_VALL),并且会发生溢出范围错误。
下面的程序说明了上述错误。
// C++ program to illustrate the
// ldexp() function
#include
using namespace std;
int main()
{
double result;
int x = 20, exp = 10000;
// It returns x*(2^exp)
result = ldexp(x, exp);
// prints the result
cout << "ldexp(x, exp) = " << result << endl;
return 0;
}
输出:
ldexp(x, exp) = inf
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。