Condividi tramite


__ll_rshift

Specifici di Microsoft

Scorre un valore a 64 bit specificato dal primo parametro a destra da una serie di bit specificato dal secondo parametro.

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

Parametri

  • [in] Mask
    Il valore Integer a 64 bit per scorrere destra.

  • [in] nBit
    Il numero di bit da spostare, del modulo 64 su x64 e del modulo 32 per x86.

Valore restituito

La maschera scorre i bit di nBit .

Requisiti

Intrinseco

Architettura

__ll_rshift

x86, x64

File di intestazione <intrin.h>

Note

Se il secondo parametro è maggiore di 64 su x64 (32 per x86), tale numero viene utilizzato il modulo 64 (32 in x86) per determinare il numero di bit per lo scorrimento. Il prefisso di ll indica che si tratta di un'operazione su long long, un altro nome per __int64, il tipo integrale con segno a 64 bit.

Esempio

// ll_rshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(__ll_rshift)

int main()
{
   __int64 Mask = - 0x100;
   int nBit = 4;
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
   Mask = __ll_rshift(Mask, nBit);
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
}

Output

ffffffffffffff00
 - 100
fffffffffffffff0
 - 10

nota se _ull_rshift è stato utilizzato, il byte più significativo del valore diritto-scorso sarebbe stato zero, il risultato desiderato non sarebbe stato ottenuto nel caso di un valore negativo.

Vedere anche

Riferimenti

Intrinseci del compilatore

__ll_lshift

__ull_rshift