.- .

检索一个整数,以表示指定值以 2 为底的无偏差指数。

语法

int ilogb(
   double x
);

int ilogb(
   float x
); //C++ only

int ilogb(
   long double x
); //C++ only

int ilogbf(
   float x
);

int ilogbl(
   long double x
);

#define ilogbl(X) // Requires C11 or higher

参数

x
指定的值。

返回值

如果成功,这些参数将返回 x 的以 2 为底的指数作为 signed int 值。

否则,函数将返回在 <math.h> 中定义的以下值之一:

输入 结果
±0 FP_ILOGB0
± INF、± NAN、IND FP_ILOGBNAN

_matherr 中所指定的内容报告错误。

备注

由于 C++ 支持重载,您可以调用采用并返回 ilogbfloat 类型的 long double 的重载。 在 C 程序中,除非使用 <tgmath.h> 宏调用此函数,否则 ilogb 始终采用并返回 double

如果使用 <tgmath.h>ilogb() 宏,则参数的类型将决定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学

调用此函数相当于调用等效 logb 函数,然后将返回值转换为 int

要求

例程 C 标头 C++ 标头
.- . <math.h> <cmath>
ilogb <tgmath.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考
frexp