__ull_rshift
Microsoft 固有の仕様
x64 では、最初のパラメーターで指定された 64 ビット値を、2 番目のパラメーターで指定されたビット数だけ右にシフトします。
構文
unsigned __int64 __ull_rshift(
unsigned __int64 mask,
int nBit
);
パラメーター
マスク*
[in] 右にシフトする 64 ビット整数値。
nBit
[in] シフトするビット数。x86 では 32 による剰余とし、x64 では 64 による剰余とします。
戻り値
nBit
ビット シフトされたマスク。
要件
Intrinsic | Architecture |
---|---|
__ull_rshift |
x86、x64 |
ヘッダー ファイル<intrin.h>
解説
2 番目のパラメーターが x86 で 31 (x64 で 63) を超える場合は、32 (x64 では 64) による剰余として、シフトするビット数が決定されます。 名前に含まれる ull
は unsigned long long (unsigned __int64)
を示します。
例
// ull_rshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;
#pragma intrinsic(__ull_rshift)
int main()
{
unsigned __int64 mask = 0x100;
int nBit = 8;
mask = __ull_rshift(mask, nBit);
cout << hex << mask << endl;
}
1
Microsoft 固有の仕様はここまで