通过使用FLT_RADIX作为对数的底数,C++ STL中的ilogb(x)函数返回| x |的对数的整数部分。通常,FLT_RADIX的值为2,因此ilogb()等效于ilog2()(仅对于正值)。
语法:
ilogb(x)
参数:该函数接受将要计算其ilogb()的单个强制参数x。数据类型可以是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
#include
#include
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
#include
#include
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
#include
#include
#include
using namespace std;
int main()
{
int result, x = 0;
result = ilogb(x);
cout << "ilogb (" << x << ") = " << result << endl;
return 0;
}
输出:
ilogb (0) = -2147483648
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。