當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。