名前


ilogb, ilogbf, ilogbl - 浮動小数点数の整数の指数を取得する

書式


#include <math.h>

int ilogb(double x); int ilogbf(float x); int ilogbl(long double x);

-lm でリンクする。

説明


これらの関数は引き数の指数部を符号付き整数として返す。 エラーが起らなかった場合、これらの関数は、対応する logb(3) 関数を (int) でキャストしたものと同じである。 0, 無限大, NaN の場合にはエラーが起る。 オーバーフローの場合にもエラーが起る可能性がある。

エラー


エラーをチェックするためには、これらの関数を呼び出す前に errno を 0 に設定し、 feclearexcept(FE_ALL_EXCEPT) を呼び出す。 これらの関数から返った後で、 errno が 0 以外または fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) が 0 以外になっている場合は、エラーが起きている。

エラーが起きていて、かつ (math_errhandling & MATH_ERRNO) が 0 以外の場合、 errnoEDOM に設定される。 エラーが起きていて、かつ (math_errhandling & MATH_ERREXCEPT) が 0 以外の場合、不正な浮動小数点数による例外が発生する。

x が 0, 無限大 (大きすぎる、小さすぎる), NaN の場合、 定義域 (domain) エラーが起る。 x が 0 の場合、定数 FP_ILOGB0 が返される。 x が NaN の場合、定数 FP_ILOGBNAN が返される。 x が無限大の場合 (または大きすぎる場合)、INT_MAX が返される。 x が小さすぎる場合、INT_MIN が返される。

準拠


C99

関連項目


log(3), logb(3)

openSUSE Logo

コンテンツ