Cette documentation est archivée et n’est pas conservée.

<<, opérateur (Référence C#)

L'opérateur de décalage vers la gauche (<<) décale le premier opérande vers la gauche du nombre de bits spécifié par le second opérande. Le type de la seconde opérande doit être un int.

Si le premier opérande est un int ou uint (quantité 32 bits), la valeur du décalage est donnée par les cinq bits de poids faible du second opérande.

Si le premier opérande est un long ou ulong (quantité 64 bits), la valeur du décalage est donnée par les six bits de poids faible du second opérande.

Les bits d'ordre haut du premier opérande sont ignorés et les bits vierges d'ordre bas sont initialisés à zéro. Les opérations de décalage ne causent jamais de dépassement de capacité.

Les types définis par l'utilisateur peuvent surcharger l'opérateur << (consultez opérateur) ; le type du premier opérande doit être un type défini par l'utilisateur et le type du second opérande doit être int. Lorsqu'un opérateur binaire est surchargé, l'opérateur d'assignation correspondant (s'il y en a un) est, lui aussi, implicitement surchargé.

// cs_operator_left_shift.cs
using System;
class MainClass
{
    static void Main() 
    {
        int i = 1;
        long lg = 1;
        Console.WriteLine("0x{0:x}", i << 1);
        Console.WriteLine("0x{0:x}", i << 33);
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}

Sortie

 
0x2
0x2
0x200000000

Notez que i<<1 et i<<33 fournissent le même résultat, car 1 et 33 possèdent les cinq mêmes bits d'ordre bas.

Afficher: