Freigeben über


Int64ShraMod32-Makro (winnt.h)

Führt einen rechten arithmetischen Schichtvorgang für einen signierten 64-Bit-Ganzzahlwert aus. Die Funktion bietet einen verbesserten Verschiebungscode für rechte arithmetische Schichten, bei denen sich die Schichtanzahl im Bereich 0-31 befindet.

Syntax

LONGLONG Int64ShraMod32(
  [in]  LONGLONG a,
  [in]  DWORD b
);

Die Parameter

[in] a

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

[in] b

Die Schichtanzahl im Bereich 0-31.

Rückgabewert

Typ: LONGLONG

Der Rückgabewert ist das signierte 64-Bit-Ganzzahlergebnis des rechten arithmetischen Schichtvorgangs.

Bemerkungen

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

Bei einem rechts arithmetischen Schichtvorgang für einen signierten Wert werden die Bits des Werts nach rechts verschoben, und auf der linken Seite des Werts werden die Bits des Werts auf den Wert des Zeichenbits festgelegt.

Ein Compiler kann optimalen Code für einen richtigen arithmetischen Schichtvorgang generieren, wenn die Schichtanzahl eine Konstante ist. Wenn die Schichtanzahl 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 verzweigt ist. Durch die Einschränkung der Schichtanzahl auf den Bereich 0-31 ermöglicht die Int64ShraMod32-Funktion dem Compiler das Generieren eines optimalen oder nahezu optimalen Codes.

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

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows XP [Desktop-Apps | UWP-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Fenster
Überschrift winnt.h (enthalten Windows.h)

Siehe auch

Int64ShllMod32

Int64ShrlMod32

Große Ganze Zahlen