__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 アーキテクチャ
__ull_rshift x86、x64

ヘッダー ファイル<intrin.h>

解説

2 番目のパラメーターが x86 で 31 (x64 で 63) を超える場合は、32 (x64 では 64) による剰余として、シフトするビット数が決定されます。 名前に含まれる ullunsigned 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 固有の仕様はここまで

関連項目

__ll_lshift
__ll_rshift
コンパイラの組み込み