Freigeben über


Int64ShllMod32-Makro (winnt.h)

Führt einen linken logischen Umschaltvorgang für einen unsignierten 64-Bit-Ganzzahlwert aus. Die Funktion bietet verbesserten Verschiebungscode für logische Linksverschiebungen, bei denen die Anzahl der Schichten im Bereich 0-31 liegt.

Syntax

void Int64ShllMod32(
  [in]  a,
  [in]  b
);

Parameter

[in] a

Die unsignierte 64-Bit-Ganzzahl, die verschoben werden soll.

[in] b

Die Schichtanzahl im Bereich 0-31.

Rückgabewert

Keine

Bemerkungen

Die Umschaltanzahl ist die Anzahl der Bitpositionen, die die Bits des Werts verschieben.

In einem linken logischen Verschiebungsvorgang für einen Wert ohne Vorzeichen werden die Bits des Werts nach links verschoben, und die leerstehenden Bits auf der rechten Seite des Werts werden auf 0 festgelegt.

Ein Compiler kann optimalen Code für einen linken logischen Umschaltvorgang generieren, wenn die Umschaltanzahl eine Konstante ist. Wenn die Umschaltanzahl jedoch eine Variable ist, deren Wertebereich unbekannt ist, muss der Compiler den schlimmsten Fall annehmen, was zu nicht optimalem Code führt: Code, der eine Unterroutine aufruft, oder Code, der inline, aber Branches ist. Durch Einschränken der Schichtanzahl auf den Bereich 0-31 ermöglicht die Int64ShllMod32-Funktion dem Compiler die Generierung optimaler oder nahezu optimaler Code.

Beachten Sie, dass der Wertparameter und der Rückgabewert der Int64ShllMod32-Funktion 64-Bit-Werte sind, nicht LARGE_INTEGER Strukturen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winnt.h (Einschließen von Windows.h)

Weitere Informationen

Int64ShraMod32

Int64ShrlMod32

Große ganze Zahlen