Freigeben über


Int64ShrlMod32-Makro (winnt.h)

Führt einen richtigen logischen Verschiebungsvorgang für einen ganzzahligen Wert ohne Vorzeichen aus. Die Funktion bietet verbesserten Verschiebungscode für richtige logische Schichten, bei denen die Anzahl der Schichten im Bereich 0-31 liegt.

Syntax

void Int64ShrlMod32(
  [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 rechten logischen Verschiebungsvorgang für einen Wert ohne Vorzeichen werden die Bits des Werts nach rechts verschoben, und leerstehende Bits auf der linken Seite des Werts werden auf 0 festgelegt.

Ein Compiler kann optimalen Code für einen richtigen logischen Verschiebungsvorgang generieren, wenn die Anzahl der Schichten 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. Indem die Anzahl der Schichten auf den Bereich 0-31 beschränkt wird, ermöglicht die Int64ShrlMod32-Funktion dem Compiler die Generierung optimaler oder nahezu optimaler Code.

Hinweis Der Wertparameter und der Rückgabewert der Int64ShrlMod32-Funktion sind 64-Bit-Werte, nicht LARGE_INTEGER Strukturen.
 

Anforderungen

   
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

Int64ShllMod32

Int64ShraMod32

Große ganze Zahlen