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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。