__ll_lshift
Sezione specifica Microsoft
Sposta il valore a 64 bit fornito a sinistra in base al numero specificato di bit.
Sintassi
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
Parametri
Maschera
[in] Valore intero a 64 bit da spostare a sinistra.
nBit
[in] Numero di bit da spostare.
Valore restituito
Maschera spostata a sinistra per nBit
bit.
Requisiti
Intrinsic | Architettura |
---|---|
__ll_lshift |
x86, x64 |
<File di intestazione intrin.h>
Osservazioni:
Se si compila il programma per l'architettura a 64 bit ed nBit
è maggiore di 63, il numero di bit da spostare è nBit
modulo 64. Se si compila il programma per l'architettura a 32 bit ed nBit
è maggiore di 31, il numero di bit da spostare è nBit
modulo 32.
Nel ll
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 esiste alcuna versione senza segno dell'operazione di spostamento a sinistra. Questo perché __ll_lshift
usa già un parametro di input senza segno. A differenza dello spostamento a destra, non esiste alcuna dipendenza del segno per lo spostamento a sinistra, perché il bit meno significativo nel risultato è sempre impostato su zero indipendentemente dal segno del valore spostato.
Fine sezione specifica Microsoft