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