__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