インテル® 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 の右端からの位置です。