共用方式為


__ll_lshift

Microsoft 專有的

將所提供的 64 位元值向左移以指定的位元。

unsigned __int64 __ll_lshift(
   unsigned __int64 Mask,
   int nBit
);

參數

  • [in] Mask
    64 位元整數的值,向左移位。

  • [in] nBit
    要移位的位元數。

傳回值

遮罩移位左nBit位元。

需求

內建

架構

__ll_lshift

x86,x64

標頭檔 <intrin.h>

備註

如果您編譯您的程式使用 64 位元架構和nBit超過 63,要移位的位元數是nBit模數 64。 如果您編譯程式,使用 32 位元架構和nBit大於 31,要移位的位元數是nBit模數 32。

ll在名稱中會指示這是一項作業,在long long (__int64)。

範例

// ll_lshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(__ll_lshift)

int main()
{
   unsigned __int64 Mask = 0x100;
   int nBit = 8;
   Mask = __ll_lshift(Mask, nBit);
   cout << hex << Mask << endl;
}

Output

10000

附註 ,則向左的移位運算的無不帶正負號的版本。 這是因為**__ll_lshift**已使用,則為不帶正負號的輸入的參數。 不像右移位中,左移位中,如沒有正負號相依關係,因為結果中的最小顯著性位元會永遠設為零的正負號的位移值而不考慮。

請參閱

參考

__ll_rshift

__ull_rshift

編譯器內建