インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

上位/下位ビットを検索する関数

32 ビット整数で特定のビットを検索します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

構文

int _fbh_i32(int value);

unsigned int _fbh_u32(unsigned int value);

int _fbl(int value);

パラメーター

value

検索する 32 ビット整数。

説明

これらの関数は、32 ビット整数 value で特定のビットを検索します。

次の表は、各関数で検索されるビットを示します。

関数

説明

_fbh_i32

符号付き整数 value のビット 31 からビット 0 を検索します。ビット 31 から開始し、0 または 1 に設定されている最初のビットを探します。

この関数を使用して、value を格納するのに必要な 2 進数の桁数を特定できます (符号用に追加で 1 ビットが必要になります)。

value に最も近い 2 の累乗が分かります。

_fbh_u32

符号なし整数 value のビット 31 からビット 0 を検索します。ビット 31 から開始し、0 に設定されている最初のビットを探します。

_fbl

符号付き整数 value のビット 0 からビット 31 を検索します。ビット 0 から開始し、1 に設定されている最初のビットを探します。

value が 0xFFFFffff _fbh_i32 の場合は 0xFFFFFFFF を返し、_fbh_u32 の場合は 0 を返します。

戻り値

関数: _fbh_i32

ソースオペランドの符号が正の場合は、先頭のゼロの数を返します。

負の場合は、先頭の 1 の数を返します。

ソースオペランドが 0 (0xFFFFFFFF) の場合は、0xFFFFFFFF を返します。

関数: _fbh_u32

先頭のゼロの数を返します。

ソースオペランドが 0 の場合は、0xFFFFFFFF を返します。

関数: _fbl

32 ビットの 2 進数 00000000001111111111000000000000 (16 進数では 0x3FF000) について考えてみます。

_fbh_i32_fbh_u32 はどちらも 11 を返します。これは、斜体で示す 1 の左端からの位置です。この 2 つの関数は、入力値の最上位ビット (ビット 31) が設定されている場合のみ動作が異なります。その場合、_fbh_i32 は先頭からの '1' の数を返し、_fbh_u32 は 0 を返します。

_fbl は 13 を返します。これは、太字で示す 1 の右端からの位置です。