__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