Aracılığıyla paylaş


__ll_rshift

Microsoft'a Özgü

İlk parametre tarafından belirtilen 64 bit değeri, ikinci parametre tarafından belirtilen bit sayısıyla sağa kaydırıyor.

Sözdizimi

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

Parametreler

Maske
[in] Sağa kaydırmak için 64 bit tamsayı değeri.

nBit
[in] Kaydıracak bit sayısı, x64'te modulo 64 ve x86'da modulo 32.

Dönüş değeri

Maske bitlerle kaydırıldı nBit .

Gereksinimler

Içsel Mimari
__ll_rshift x86, x64

intrin.h üst bilgi dosyası<>

Açıklamalar

İkinci parametre x64 üzerinde 64'ten büyükse (x86'da 32), kaydıracak bit sayısını belirlemek için bu sayı modulo 64 (x86'da 32) alınır. Ön ll ek, 64 bit imzalı tam sayı türü için __int64başka bir adı olan üzerinde long longbir işlem olduğunu gösterir.

Örnek

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

Çıktı

ffffffffffffff00
- 100
fffffffffffffff0
- 10

Dekont

Kullanılmışsa _ull_rshift , sağ kaydırılan değerin MSB değeri sıfır olurdu, bu nedenle negatif bir değer söz konusu olduğunda istenen sonuç elde edilemeyebilirdi.

END Microsoft'a Özgü

Ayrıca bkz.

Derleyici iç bilgileri
__ll_lshift
__ull_rshift