__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

Voir aussi

__ll_rshift
__ull_rshift
Intrinsèques du compilateur