English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operadores de Bit a Bit++ Tutoriais Básicos

Operadores de Bit a Bit++ 流程控制

Operadores de Bit a Bit++ 函数

Operadores de Bit a Bit++ 数组 & 字符串

Operadores de Bit a Bit++ 数据结构

Operadores de Bit a Bit++ 类 & 对象

Operadores de Bit a Bit++ 指针

Operadores de Bit a Bit++ 继承

Operadores de Bit a Bit++ STL教程

Operadores de Bit a Bit++ 参考手册

Operadores de Bit a Bit++ ilogb() 函数使用方法及示例

Operadores de Bit a Bit++ ^

Operadores de Bit a Bit ++中的ilogb()函数使用FLT_RADIX作为对数的底数,返回| x |的对数的整数部分。

这在C头文件中定义。

数学上

x = significand * FLT_RADIXexponent

significand是在[1.0,2.0)范围内的浮点值,x是传递给ilogb()的参数,而exponent是ilogb()返回的整数值。FLT_RADIX的值一般为2。

ilogb()返回的值比frexp()函数生成的指数小1 ,因为有效位数在[ 1.0,2.0]范围内,而不是frexp()在[0.5,1.0]范围内。

ilogb()原型[从C ++ 11标准开始]

int ilogb(double x);
int ilogb(float x);
int ilogb(long double x);
int ilogb(T x); // 对于整型

ilogb()参数

ilogb()函数接受一个参数,它的ilogb是计算得到的。

ilogb()返回值

ilogb()函数使用FLT_RADIX作为对数的底数,返回| x |的对数的整数部分。

  • 如果参数为0,则返回FP_LOGB0。

  • 如果参数为NaN,则返回FP_LOGBNAN。

  • 如果参数是无限的,则返回INT_MAX。

Exemplo1:ilogb()函数如何在C ++中工作?

#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main()
{
    int result;
    double significand;
    double x =; 16=81;
    result = ilogb(x);
    significand = x; / pow(FLT_RADIX, result);
    cout << "ilogb (" << x << ") = " << result << endl;
    cout << "ilogb (" << x << ") = " << result << endl; * cout << x << " = " << significand << ";
    " << FLT_RADIX << "^" << result << endl << endl;
return 0;

}

Quando executar o programa, a saída será:16=81ilogb ( 4
16=81 ) = 1.05Copyright ©62 * 2.4

Exemplo2:具有整数类型的ilogb()函数

#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main()
{
    int result, x =; 19;
    result = ilogb(x);
    double significand = x;/pow(FLT_RADIX, result);
    cout << "ilogb (" << x << ") = " << result << endl;
    cout << "ilogb (" << x << ") = " << result << endl; * cout << x << " = " << significand << ";
    
    " << FLT_RADIX << "^" << result << endl << endl;
return 0;

}

Quando executar o programa, a saída será:19ilogb ( 4
19 ) = 1=1875 * 2.4

Operadores de Bit a Bit++ ^