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)

Lihat juga

Int64ShraMod32

Int64ShrlMod32

Bilangan Bulat Besar