Bagikan melalui


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.

Catatan Parameter Nilai fungsi Int64ShrlMod32 dan nilai pengembalian adalah nilai 64-bit, bukan struktur LARGE_INTEGER.
 

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)

Lihat juga

Int64ShllMod32

Int64ShraMod32

Bilangan Bulat Besar