__ll_rshift
Section spécifique à Microsoft
Déplace une valeur 64 bits spécifiée par le premier paramètre à droite, par un certain nombre de bits spécifiés par le deuxième paramètre.
Syntaxe
__int64 __ll_rshift(
__int64 Mask,
int nBit
);
Paramètres
Masque
[in] Valeur entière 64 bits à déplacer vers la droite.
Nbit
[in] Nombre de bits à déplacer, modulo 64 sur x64 et modulo 32 sur x86.
Valeur retournée
Masque décalé par nBit
bits.
Spécifications
Intrinsic | Architecture |
---|---|
__ll_rshift |
x86, x64 |
Fichier<d’en-tête intrin.h>
Notes
Si le deuxième paramètre est supérieur à 64 sur x64 (32 sur x86), ce nombre est pris modulo 64 (32 sur x86) pour déterminer le nombre de bits à déplacer. Le ll
préfixe 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
elle a été utilisée, le MSB de la valeur décalée à droite aurait été égal à zéro, de sorte que le résultat souhaité n’aurait pas été obtenu dans le cas d’une valeur négative.
FIN de la section spécifique à Microsoft
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour