Int64ShllMod32 マクロ (winnt.h)
符号なし 64 ビット整数値に対して左論理シフト操作を実行します。 この関数は、シフト数が 0 から 31 の範囲にある左論理シフトのシフト コードを改善します。
構文
void Int64ShllMod32(
[in] a,
[in] b
);
パラメーター
[in] a
シフトする符号なし 64 ビット整数。
[in] b
0 から 31 の範囲のシフト数。
戻り値
なし
解説
シフトカウントは、値のビットが移動するビット位置の数です。
符号なしの値に対する左論理シフト操作では、値のビットは左に移動し、値の右側の空きビットは 0 に設定されます。
シフト数が定数の場合、コンパイラは左論理シフト操作に最適なコードを生成できます。 ただし、シフトカウントが値の範囲が不明な変数である場合、コンパイラは最悪のケースを想定する必要があります。その場合、サブルーチンを呼び出すコード、またはインラインだが分岐するコードなど、最適でないコードが発生します。 シフト数を 0 から 31 の範囲に制限することで、 Int64ShllMod32 関数を使用すると、コンパイラは最適または最適に近いコードを生成できます。
Int64ShllMod32 関数の Value パラメーターと戻り値は、LARGE_INTEGER構造体ではなく 64 ビット値であることに注意してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnt.h (Windows.h を含む) |