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