Partager via


__ll_rshift

Spécifique à Microsoft

Déplace une valeur 64 bits spécifié par le premier paramètre vers la droite selon un certain nombre de bits spécifié par le deuxième paramètre.

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

Paramètres

  • [in] Mask
    La valeur entière 64 bits pour déplacer la droite.

  • [in] nBit
    Le nombre de bits à déplacer, du modulo 64 sur x64, et du modulo 32 sur x86.

Valeur de retour

Le masque déplacé par les bits d' nBit .

Configuration requise

Intrinsèque

Architecture

__ll_rshift

x86, x64

Fichier d'en-tête <intrin.h>

Notes

Si le deuxième paramètre est supérieur à 64 sur 32 (x64 sur x86), ce nombre est le modulo pris 64 (32 sur x86) pour déterminer le nombre de bits pour déplacer. Le préfixe d' ll indique qu'il s'agit d'une opération sur long long, un autre nom pour __int64, le type intégral signé 64 bits.

Exemple

// ll_rshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(__ll_rshift)

int main()
{
   __int64 Mask = - 0x100;
   int nBit = 4;
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
   Mask = __ll_rshift(Mask, nBit);
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
}

Sortie

ffffffffffffff00
 - 100
fffffffffffffff0
 - 10

remarque si _ull_rshift a été utilisé, l'octet le plus significatif de la valeur droit-déplacée aurait été zéro, l'effet souhaité n'aurait pas été obtenu dans le cas d'une valeur négative.

Voir aussi

Référence

intrinsèques du compilateur

__ll_lshift

__ull_rshift