C++ STL中的ilogb(x)函數通過使用FLT_RADIX作為對數的底數,返回| x |對數的整數部分。通常,FLT_RADIX的值為2,因此ilogb()等效於ilog2()(僅適用於正值)。
用法:
ilogb(x)
參數:該函數接受單個強製參數x,其ilogb()將被計算。數據類型可以是double,float,long double或int。
返回值:該函數使用FLT_RADIX作為對數的底數,返回| x |的對數的整數部分。該函數返回三個異常值:
- 如果參數為NaN,則返回FP_LOGBNAN。
- 如果參數是無限的,則返回INT_MAX
- 如果參數為0,則返回FP_LOGB0。
以下示例程序旨在說明上述函數:
程序1:
// C++ program to illustrate the ilogb()
// function when input is an integer
#include <cfloat>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
int result, x = 25;
// Function to calculate ilogb(25)
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
// Function to calculate ilogb(50)
x = 50;
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
return 0;
}
輸出:
ilogb (25) = 4 ilogb (50) = 5
程序2:
非積分型程序
// C++ program to illustrate the ilogb()
// function when input is a double value
#include <cfloat>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
int result, x = 11.11;
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
x = 41.11;
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
return 0;
}
輸出:
ilogb (11) = 3 ilogb (41) = 5
程序3:
// C++ program to illustrate the ilogb()
// function when input is 0
#include <cfloat>
#include <cmath>
#include <iostream>
#include <iostream>
using namespace std;
int main()
{
int result, x = 0;
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
return 0;
}
輸出:
ilogb (0) = -2147483648
相關用法
- C++ log()用法及代碼示例
- C++ div()用法及代碼示例
- C++ fma()用法及代碼示例
- C++ real()用法及代碼示例
- C++ imag()用法及代碼示例
- C++ map key_comp()用法及代碼示例
- C++ regex_iterator()用法及代碼示例
- C++ valarray tan()用法及代碼示例
- C++ valarray pow()用法及代碼示例
- C++ valarray log()用法及代碼示例
注:本文由純淨天空篩選整理自IshwarGupta大神的英文原創作品 ilogb() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。