Condividi tramite


__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.

Vedere anche

Riferimenti

__ll_rshift

__ull_rshift

Intrinseci del compilatore