Makro Int64ShrlMod32 (winnt.h)
Melakukan operasi pergeseran logis yang tepat pada nilai bilangan bulat 64-bit yang tidak ditandatangani. Fungsi ini menyediakan kode pergeseran yang ditingkatkan untuk pergeseran logis yang tepat di mana jumlah shift berada dalam rentang 0-31.
Sintaks
void Int64ShrlMod32(
[in] a,
[in] b
);
Parameter
[in] a
Bilangan bulat 64-bit yang tidak ditandatangani untuk digeser.
[in] b
Jumlah shift dalam rentang 0-31.
Menampilkan nilai
Tidak ada
Keterangan
Jumlah shift adalah jumlah posisi bit yang dipindahkan bit nilai.
Dalam operasi pergeseran logis kanan pada nilai yang tidak ditandatangani, bit nilai berpindah ke kanan, dan bit kosong di sisi kiri nilai diatur ke nol.
Pengkompilasi dapat menghasilkan kode optimal untuk operasi pergeseran logis yang tepat ketika jumlah shift adalah konstanta. Namun, jika jumlah shift adalah variabel yang rentang nilainya tidak diketahui, pengkompilasi harus mengasumsikan kasus terburuk, yang mengarah ke kode yang tidak optimal: kode yang memanggil sub-rutin, atau kode yang sebaris tetapi cabang. Dengan membatasi jumlah shift ke rentang 0-31, fungsi Int64ShrlMod32 memungkinkan kompilator menghasilkan kode optimal atau hampir optimal.
Persyaratan
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 (sertakan Windows.h) |