__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

Confira também

__ll_rshift
__ull_rshift
Intrínsecos do compilador