__ll_lshift
Specifici di Microsoft
Scorre il valore a 64 bit fornito del numero specificato di bit.
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
Parametri
[in] Mask
Il valore Integer a 64 bit di scorrimento sinistro.[in] nBit
Il numero di bit da spostare.
Valore restituito
La maschera di sinistra i bit di nBit .
Requisiti
Intrinseco |
Architettura |
---|---|
__ll_lshift |
x86, x64 |
File di intestazione <intrin.h>
Note
Se il programma viene compilato utilizzando l'architettura a 64 bit e nBit è maggiore di 63, il numero di bit mediante lo scorrimento è modulo 64 di nBit . Se il programma viene compilato utilizzando l'architettura a 32 bit e nBit è maggiore di 31, il numero di bit mediante lo scorrimento è modulo 32 di nBit .
ll nel nome indica che si tratta di un'operazione su long long (__int64).
Esempio
// 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 non rappresenta la versione senza segno l'operazione di spostamento a sinistra. Questo perché __ll_lshift già utilizza un parametro di input senza segno. A differenza di spostamento a destra, non esiste alcuna dipendenza del segno per lo spostamento a sinistra, poiché il bit meno significativi nel risultato è sempre impostato su zero indipendentemente dal segno del valore di.