Makro Int64ShllMod32 (winnt.h)
Melakukan operasi shift logis kiri pada nilai bilangan bulat 64-bit yang tidak ditandatangani. Fungsi ini menyediakan kode pergeseran yang ditingkatkan untuk pergeseran logis kiri di mana jumlah shift berada dalam rentang 0-31.
Sintaks
void Int64ShllMod32(
[in] a,
[in] b
);
Parameter
[in] a
Bilangan bulat 64-bit yang tidak ditandatangani untuk digeser.
[in] b
Jumlah shift dalam rentang 0-31.
Mengembalikan nilai
Tidak ada
Keterangan
Jumlah shift adalah jumlah posisi bit yang dipindahkan bit nilai.
Dalam operasi pergeseran logis kiri pada nilai yang tidak ditandatangani, bit nilai bergerak ke kiri, dan bit kosong di sisi kanan nilai diatur ke nol.
Pengkompilasi dapat menghasilkan kode optimal untuk operasi pergeseran logis kiri ketika jumlah shift adalah konstanta. Namun, jika jumlah shift adalah variabel yang rentang nilainya tidak diketahui, kompilator harus mengasumsikan kasus terburuk, yang mengarah ke kode yang tidak optimal: kode yang memanggil subroutine, atau kode yang sebaris tetapi cabang. Dengan membatasi jumlah shift ke rentang 0-31, fungsi Int64ShllMod32 memungkinkan kompilator menghasilkan kode optimal atau hampir optimal.
Harap dicatat bahwa parameter Nilai fungsi Int64ShllMod32 dan nilai yang dikembalikan adalah nilai 64-bit, bukan struktur LARGE_INTEGER.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winnt.h (termasuk Windows.h) |