Makro Int64ShraMod32 (winnt.h)
Melakukan operasi pergeseran aritmatika yang tepat pada nilai bilangan bulat 64-bit yang ditandatangani. Fungsi ini menyediakan kode pergeseran yang ditingkatkan untuk pergeseran aritmatika yang tepat di mana jumlah shift berada dalam rentang 0-31.
Sintaks
void Int64ShraMod32(
[in] a,
[in] b
);
Parameter
[in] a
Bilangan bulat 64-bit yang ditandatangani akan 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 aritmatika kanan pada nilai yang ditandatangani, bit nilai berpindah ke kanan, dan bit kosong di sisi kiri nilai diatur ke nilai bit tanda.
Pengkompilasi dapat menghasilkan kode optimal untuk operasi pergeseran aritmatika yang tepat 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 Int64ShraMod32 memungkinkan kompilator menghasilkan kode optimal atau hampir optimal.
Harap dicatat bahwa parameter Nilai fungsi Int64ShraMod32 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) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk