📜  C++ STL中的ilogb()函数

📅  最后修改于: 2021-05-30 12:48:36             🧑  作者: Mango

通过使用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等的更多准备工作,请参阅“完整面试准备课程”