Macro Int64ShraMod32 (winnt.h)

Effectue une opération de décalage arithmétique droite sur une valeur entière 64 bits signée. La fonction fournit un code de déplacement amélioré pour les décalages arithmétiques droit où le nombre de décalages est dans la plage 0-31.

Syntaxe

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

Paramètres

[in] a

Entier 64 bits signé à déplacer.

[in] b

Nombre de décalages dans la plage 0-31.

Valeur de retour

None

Remarques

Le nombre de décalages correspond au nombre de positions de bits déplacées par les bits de la valeur.

Dans une opération de décalage arithmétique droite sur une valeur signée, les bits de la valeur se déplacent vers la droite, et les bits libérés sur le côté gauche de la valeur sont définis sur la valeur du bit de signe.

Un compilateur peut générer du code optimal pour une opération de décalage arithmétique droite lorsque le nombre de décalages est une constante. Toutefois, si le nombre de décalages est une variable dont la plage de valeurs est inconnue, le compilateur doit supposer le pire cas, ce qui conduit à un code non optimal : code qui appelle une sous-routine ou code qui est inline mais branches. En limitant le nombre de décalages à la plage 0-31, la fonction Int64ShraMod32 permet au compilateur de générer un code optimal ou quasi optimal.

Notez que le paramètre Value et la valeur de retour de la fonction Int64ShraMod32 sont des valeurs 64 bits, et non LARGE_INTEGER structures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winnt.h (inclure Windows.h)

Voir aussi

Int64ShllMod32

Int64ShrlMod32

Entiers volumineux