当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ ldexp()用法及代码示例


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 <bits/stdc++.h> 
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 <bits/stdc++.h> 
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 <bits/stdc++.h> 
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


相关用法


注:本文由纯净天空筛选整理自AmanSrivastava1大神的英文原创作品 ldexp() function in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。