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


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


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


相关用法


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