Bagikan melalui


__ll_rshift

Khusus Microsoft

Menggeser nilai 64-bit yang ditentukan oleh parameter pertama ke kanan, dengan sejumlah bit yang ditentukan oleh parameter kedua.

Sintaks

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

Parameter

Masker
[di] Nilai bilangan bulat 64-bit untuk menggeser ke kanan.

nBit
[di] Jumlah bit yang akan digeser, modulo 64 pada x64, dan modulo 32 pada x86.

Nilai hasil

Masker digeser oleh nBit bit.

Persyaratan

Intrinsik Sistem
__ll_rshift x86, x64

File header<intrin.h>

Keterangan

Jika parameter kedua lebih besar dari 64 pada x64 (32 pada x86), angka tersebut diambil modulo 64 (32 pada x86) untuk menentukan jumlah bit yang akan digeser. ll Awalan menunjukkan bahwa ini adalah operasi pada long long, nama lain untuk __int64, jenis integral bertanda tangan 64-bit.

Contoh

// 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

Catatan

Jika _ull_rshift telah digunakan, MSB dari nilai yang digeser kanan akan menjadi nol, sehingga hasil yang diinginkan tidak akan diperoleh dalam kasus nilai negatif.

END Khusus Microsoft

Lihat juga

Intrinsik pengkompilasi
__ll_lshift
__ull_rshift