Int64ShrlMod32 宏 (winnt.h)

在未帶正負號的 64 位整數值上執行右邏輯移位運算。 函式會針對移位元數目在 0-31 範圍內的正確邏輯移位,提供改良的移位程式碼。

語法

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

參數

[in] a

要移位的不帶正負號 64 位整數。

[in] b

範圍 0-31 中的班次計數。

傳回值

備註

Shift 計數是值位移動的位位置數目。

在未帶正負號值的右邏輯移位作業中,值的位會移至右邊,而值左邊的空位會設定為零。

編譯器可以在移位元數目為常數時,為正確的邏輯移位作業產生最佳程式碼。 不過,如果班次計數是未知值範圍的變數,編譯器必須假設最差的情況,導致非最佳程式碼:呼叫副程式的程式碼,或內嵌但分支的程式碼。 藉由將移位元數目限制為範圍 0-31, Int64ShrlMod32 函式可讓編譯器產生最佳或近乎最佳的程式碼。

注意Int64ShrlMod32函式的Value參數和傳回值是 64 位值,而不是LARGE_INTEGER結構。
 

規格需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winnt.h (包括 Windows.h)

另請參閱

Int64ShllMod32

Int64ShraMod32

大型整數