次の方法で共有


ilogbilogbfilogbl

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

戻り値

成功した場合、これらの関数はsigned int値としてxの base-2 指数を返します。

それ以外の場合、関数は、 <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++ ヘッダー
ilogbilogbfilogbl <math.h> <cmath>
ilogb マクロ <tgmath.h>

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

関連項目

関数リファレンス (アルファベット順)
frexp
logblogbflogbl_logb_logbf