Partager via


__ll_lshift

Spécifique à Microsoft

Déplace le valeur 64 bits fourni vers la gauche selon le nombre de bits spécifié.

unsigned __int64 __ll_lshift(
   unsigned __int64 Mask,
   int nBit
);

Paramètres

  • [in] Mask
    La valeur entière 64 bits pour accéder à gauche.

  • [in] nBit
    Le nombre de bits à déplacer.

Valeur de retour

Le masque est déplacé à gauche par les bits d' nBit .

Configuration requise

Intrinsèque

Architecture

__ll_lshift

x86, x64

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

Notes

Si vous compilez votre programme à l'aide de l'architecture de 64 bits et nBit est supérieur à 63, le nombre de bits à déplacer est le modulo 64 d' nBit . Si vous compilez votre programme à l'aide de l'architecture de 32 bits et nBit est supérieur à 31, le nombre de bits à déplacer est le modulo 32 d' nBit .

ll dans le 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'y a aucune version non signée de l'opération de décalage vers la gauche. En effet __ll_lshift utilise déjà un paramètre d'entrée non signé. Contrairement au décalage vers la droite, il n'y a aucune dépendance de signe pour le décalage vers la gauche, parce que le bit le moins significatif dans le résultat est toujours la valeur zéro quel que soit le signe de la valeur déplacée.

Voir aussi

Référence

__ll_rshift

__ull_rshift

intrinsèques du compilateur