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.
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) |