Condividi tramite


__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

Vedi anche

__ll_rshift
__ull_rshift
Intrinseci del compilatore