__ll_lshift
Section spécifique à Microsoft
Déplace la valeur 64 bits fournie à gauche par le nombre spécifié de bits.
Syntaxe
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
Paramètres
Masque
[in] Valeur entière 64 bits à déplacer vers la gauche.
nBit
[in] Nombre de bits à déplacer.
Valeur retournée
Masque décalé vers la gauche par nBit
bits.
Spécifications
Intrinsic | Architecture |
---|---|
__ll_lshift |
x86, x64 |
Fichier<d’en-tête intrin.h>
Notes
Si vous compilez votre programme pour l’architecture 64 bits et nBit
est supérieur à 63, le nombre de bits à déplacer est nBit
modulo 64. Si vous compilez votre programme pour l’architecture 32 bits et nBit
est supérieur à 31, le nombre de bits à déplacer est nBit
modulo 32.
Le ll
nom indique qu’il s’agit d’une opération sur long long
(__int64
).
Exemple
// ll_lshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;
#pragma intrinsic(__ll_lshift)
int main()
{
unsigned __int64 Mask = 0x100;
int nBit = 8;
Mask = __ll_lshift(Mask, nBit);
cout << hex << Mask << endl;
}
Sortie
10000
Remarque
Il n’existe aucune version non signée de l’opération de décalage gauche. Cela est dû au fait qu’il __ll_lshift
utilise déjà un paramètre d’entrée non signé. Contrairement au décalage vers la droite, il n’existe aucune dépendance de signe pour le décalage gauche, car le bit le moins significatif dans le résultat est toujours défini sur zéro, quel que soit le signe de la valeur décalée.
FIN de la section spécifique à Microsoft