インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド

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

32 ビット整数で特定のビットを検索します。このトピックは、インテル® グラフィックス・テクノロジー向けのインテル® 64 アーキテクチャーと IA-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 の右端からの位置です。

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804


このヘルプトピックについてのフィードバックを送信