Partilhar via


__ll_lshift

Específicos do Microsoft

Desloca o valor de 64 bits fornecido para a esquerda pelo número especificado de bits.

unsigned __int64 __ll_lshift(
   unsigned __int64 Mask,
   int nBit
);

Parâmetros

  • [in]Mask
    O valor inteiro de 64 bits para deslocar para a esquerda.

  • [in]nBit
    O número de bits shift.

Valor de retorno

A máscara deslocados à esquerda por nBit bits.

Requisitos

Intrínseca

Arquitetura

__ll_lshift

x86,x64

Arquivo de cabeçalho <intrin.h>

Comentários

Se você compilar seu programa usando a arquitetura de 64 bits e nBit é maior do que 63, é o número de bits shift nBit módulo 64. Se você compilar seu programa usando a arquitetura de 32 bits e nBit maior que 31, é o número de bits shift nBit módulo 32.

O ll o nome indica que esta é 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

Nota há nenhuma versão unsigned da operação de deslocamento à esquerda. Isso ocorre porque __ll_lshift já usa um parâmetro de entrada não assinado. Ao contrário de deslocamento à direita, não há nenhuma dependência do sinal para deslocamento à esquerda, porque o bit menos significativo no resultado é sempre definido como zero independentemente do sinal do valor deslocado.

Consulte também

Referência

__ll_rshift

__ull_rshift

Intrínsecos do compilador