ilogb, ilogbf, ilogbl

指定した値を、バイアスをかけない 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
指定した値。

戻り値

成功した場合、これらの関数は底 2 指数 xsigned int 値として返します。

それ以外の場合、関数は math.h> で<定義されている次のいずれかの値を返します。

入力 結果
±0 FP_ILOGB0
± INF、± NAN、IND FP_ILOGBNAN

エラーは次で指定したとおりに _matherr報告されます。

解説

C++ ではオーバーロードが可能であるため、ilogb 型および float 型を受け取って返す long double のオーバーロードを呼び出すことができます。 C プログラムでは、tgmath.h マクロを<使用してこの関数を呼び出していない限り、ilogb常に double.>

<tgmath.h>ilogb() マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。

この関数を呼び出すことは、これに相当する logb 関数を呼び出してから、戻り値を int へキャストすることに似ています。

必要条件

ルーチンによって返される値 C ヘッダー C++ ヘッダー
ilogb, ilogbf, ilogbl <math.h> <cmath>
ilogb マクロ <tgmath.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

アルファベット順関数リファレンス
frexp
logb, logbf, logbl, _logb, _logbf