Condividi tramite


__ll_rshift

Sezione specifica Microsoft

Sposta un valore a 64 bit specificato dal primo parametro a destra, in base a un numero di bit specificato dal secondo parametro.

Sintassi

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

Parametri

Maschera
[in] Valore intero a 64 bit da spostare a destra.

nBit
[in] Numero di bit da spostare, modulo 64 su x64 e modulo 32 su x86.

Valore restituito

Maschera spostata in nBit base ai bit.

Requisiti

Intrinsic Architettura
__ll_rshift x86, x64

<File di intestazione intrin.h>

Osservazioni:

Se il secondo parametro è maggiore di 64 su x64 (32 su x86), tale numero viene preso modulo 64 (32 su x86) per determinare il numero di bit da spostare. Il ll prefisso 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 usato, l'MSB del valore spostato a destra sarebbe stato zero, quindi il risultato desiderato non sarebbe stato ottenuto nel caso di un valore negativo.

Fine sezione specifica Microsoft

Vedi anche

Intrinseci del compilatore
__ll_lshift
__ull_rshift