__ll_lshift
Seção específica da Microsoft
Desloca o valor de 64 bits fornecido para a esquerda o número especificado de bits.
Sintaxe
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
Parâmetros
Máscara
[in] O valor inteiro de 64 bits a ser deslocado para a esquerda.
nBit
[in] O número de bits a deslocar.
Valor retornado
A máscara deslocada para a esquerda nBit
bits.
Requisitos
Intrinsic | Arquitetura |
---|---|
__ll_lshift |
x86, x64 |
Arquivo de cabeçalho<intrin.h>
Comentários
Se você compilar o programa para a arquitetura de 64 bits e nBit
for maior que 63, o número de bits a serem deslocados será nBit
no módulo de 64. Se você compilar o programa para a arquitetura de 32 bits e nBit
for maior que 31, o número de bits a serem deslocados será nBit
no módulo de 32.
O ll
no nome indica que é uma operação em long long
(__int64
).
Exemplo
// 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;
}
Saída
10000
Observação
Não há nenhuma versão sem sinal da operação de deslocamento para a esquerda. Isso ocorre porque __ll_lshift
já usa um parâmetro de entrada sem sinal. Diferente do deslocamento para a direita, não há dependência de sinais para o deslocamento para a esquerda, pois o bit menos significativo no resultado sempre é definido como zero, independentemente do sinal do valor deslocado.
Fim da seção específica da Microsoft