次の方法で共有


Int64ShraMod32 マクロ (winnt.h)

符号付き 64 ビット整数値に対して右算術シフト演算を実行します。 この関数は、シフト数が 0 から 31 の範囲にある右の算術シフトに対して改善されたシフト コードを提供します。

構文

void Int64ShraMod32(
  [in]  a,
  [in]  b
);

パラメーター

[in] a

シフトする符号付き 64 ビット整数。

[in] b

0 から 31 の範囲のシフト数。

戻り値

なし

解説

シフトカウントは、値のビットが移動するビット位置の数です。

符号付き値に対する右算術シフト演算では、値のビットが右に移動し、値の左側の空きビットが符号ビットの値に設定されます。

シフトカウントが定数の場合、コンパイラは右算術シフト演算に最適なコードを生成できます。 ただし、シフトカウントが値の範囲が不明な変数である場合、コンパイラは最悪のケースを想定する必要があります。その場合、サブルーチンを呼び出すコード、またはインラインだが分岐するコードなど、最適でないコードが発生します。 シフト数を 0 から 31 の範囲に制限することで、 Int64ShraMod32 関数を使用すると、コンパイラは最適または最適に近いコードを生成できます。

Int64ShraMod32 関数の Value パラメーターと戻り値は、LARGE_INTEGER構造体ではなく 64 ビット値であることに注意してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー winnt.h (Windows.h を含む)

こちらもご覧ください

Int64ShllMod32

Int64ShrlMod32

大きい整数