__ll_rshift
Specyficzne dla firmy Microsoft
Przesuwa wartość 64-bitową określoną przez pierwszy parametr po prawej stronie przez liczbę bitów określonych przez drugi parametr.
Składnia
__int64 __ll_rshift(
__int64 Mask,
int nBit
);
Parametry
Maska
[in] Wartość 64-bitowej liczby całkowitej, aby przesunąć się w prawo.
nBit
[in] Liczba bitów do przesunięcia, modulo 64 na x64 i modulo 32 na x86.
Wartość zwracana
Maska przesunięta przez nBit
bity.
Wymagania
Nieodłączny | Architektura |
---|---|
__ll_rshift |
x86, x64 |
Plik<nagłówka intrin.h>
Uwagi
Jeśli drugi parametr jest większy niż 64 na x64 (32 w x86), ta liczba jest pobierana modulo 64 (32 na x86), aby określić liczbę bitów do przesunięcia. Prefiks ll
wskazuje, że jest to operacja na long long
, innej nazwie dla __int64
, 64-bitowego typu całkowitego ze znakiem.
Przykład
// 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;
}
Wyjście
ffffffffffffff00
- 100
fffffffffffffff0
- 10
Uwaga
Jeśli _ull_rshift
została użyta, msB wartości przesuniętej po prawej stronie byłoby zero, więc żądany wynik nie zostałby uzyskany w przypadku wartości ujemnej.
END Microsoft Specific