__ull_rshift
Блок, относящийся только к системам Майкрософт
в x64 сдвигает 64-разрядное значение, указанное первым параметром вправо на несколько битов, указанных вторым параметром.
Синтаксис
unsigned __int64 __ull_rshift(
unsigned __int64 mask,
int nBit
);
Параметры
mask
[in] 64-разрядное целое число для перемещения вправо.
nBit
[in] Количество битов для смены, модуло 32 на x86 и modulo 64 на x64.
Возвращаемое значение
Маска смещена nBit
битами.
Требования
Intrinsic | Архитектура |
---|---|
__ull_rshift |
x86, x64 |
Файл<заголовка intrin.h>
Замечания
Если второй параметр больше 31 на x86 (63 на x64), то это число принимается по модулю 32 (64 на x64), чтобы определить количество битов для смены. В 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
Завершение блока, относящегося только к системам Майкрософт