Bagikan melalui


__ll_lshift

Khusus Microsoft

Menggeser nilai 64-bit yang disediakan ke kiri dengan jumlah bit yang ditentukan.

Sintaks

unsigned __int64 __ll_lshift(
   unsigned __int64 Mask,
   int nBit
);

Parameter

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

nBit
[di] Jumlah bit yang akan digeser.

Nilai hasil

Masker bergeser ditinggalkan oleh nBit bit.

Persyaratan

Intrinsik Sistem
__ll_lshift x86, x64

File header<intrin.h>

Keterangan

Jika Anda mengkompilasi program untuk arsitektur 64-bit, dan nBit lebih besar dari 63, jumlah bit yang akan digeser adalah nBit modulo 64. Jika Anda mengkompilasi program untuk arsitektur 32-bit, dan nBit lebih besar dari 31, jumlah bit yang akan digeser adalah nBit modulo 32.

Dalam ll nama menunjukkan bahwa itu adalah operasi pada long long (__int64).

Contoh

// ll_lshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(__ll_lshift)

int main()
{
   unsigned __int64 Mask = 0x100;
   int nBit = 8;
   Mask = __ll_lshift(Mask, nBit);
   cout << hex << Mask << endl;
}

Output

10000

Catatan

Tidak ada versi operasi shift kiri yang tidak ditandatangani. Ini karena __ll_lshift sudah menggunakan parameter input yang tidak ditandatangani. Tidak seperti shift kanan, tidak ada ketergantungan tanda untuk shift kiri, karena bit paling tidak signifikan dalam hasil selalu diatur ke nol terlepas dari tanda nilai yang digeser.

END Khusus Microsoft

Lihat juga

__ll_rshift
__ull_rshift
Intrinsik pengkompilasi