__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

Wewnętrzne 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;
}

Dane wyjściowe

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

Zobacz też

Funkcje wewnętrzne kompilatora
__ll_lshift
__ull_rshift