Compartir a través de


__ll_lshift

Específicos de Microsoft

Desplaza el valor de 64 bits proporcionado a la izquierda el número especificado de bits.

Sintaxis

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

Parámetros

Mask
[in] Valor entero de 64 bits que se va a desplazar a la izquierda.

nBit
[in] El número de bits que se va a desplazar.

Valor devuelto

La máscara desplazada a la izquierda nBit bits.

Requisitos

Intrinsic Arquitectura
__ll_lshift x86, x64

Archivo de encabezado<intrin.h>

Comentarios

Si compila el programa para la arquitectura de 64 bits y nBit es mayor que 63, el número de bits que se van a desplazar es nBit módulo 64. Si compila el programa para la arquitectura de 32 bits y nBit es mayor que 31, el número de bits que se van a desplazar es nBit módulo 32.

ll en el nombre se indica que se trata de una operación en long long (__int64).

Ejemplo

// 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

Nota:

No hay ninguna versión sin firmar de la operación de desplazamiento a la izquierda. Esto se debe a que __ll_lshift ya usa un parámetro de entrada sin signo. A diferencia del desplazamiento a la derecha, no hay ninguna dependencia de signo en el desplazamiento a la izquierda, ya que el bit menos significativo del resultado siempre se establece en cero independientemente del signo del valor desplazado.

FIN de Específicos de Microsoft

Consulte también

__ll_rshift
__ull_rshift
Intrínsecos del compilador