📜  C / C++中的ldexp()函数

📅  最后修改于: 2021-05-30 06:39:27             🧑  作者: Mango

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)

参数:该函数接受两个强制性参数xexp ,它们指定定义中描述的两个变量。

返回值:该函数返回表达式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等的更多准备工作,请参阅“完整面试准备课程”