Partager via


<< Opérateur (Visual Basic)

Effectue un décalage arithmétique gauche sur un modèle de bits.

Syntaxe

result = pattern << amount  

Pièces

result
Obligatoire. Valeur numérique intégrale. Résultat du déplacement du modèle de bits. Le type de données est identique à celui de pattern.

pattern
Obligatoire. Expression numérique intégrale. Modèle de bits à déplacer. Le type de données doit être un type intégral (SByte, Byte, Short, UShortInteger, UIntegerLongou ULong).

amount
Obligatoire. Expression numérique. Nombre de bits à déplacer au modèle de bits. Le type de données doit être Integer ou étendu à Integer.

Remarques

Les décalages arithmétiques ne sont pas circulaires, ce qui signifie que les bits décalés d’une extrémité du résultat ne sont pas réintroduites à l’autre extrémité. Dans un décalage arithmétique vers la gauche, les bits décalés au-delà de la plage du type de données de résultat sont ignorés, et les positions de bits libérées à droite sont définies sur zéro.

Pour empêcher un décalage par plus de bits que le résultat peut contenir, Visual Basic masque la valeur d’un masque de amount taille qui correspond au type de données de pattern. Le fichier AND binaire de ces valeurs est utilisé pour la quantité de décalage. Les masques de taille sont les suivants :

Type de données de pattern Masque de taille (décimal) Masque de taille (hexadécimal)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Si amount la valeur est égale à zéro, la valeur est result identique à la valeur de pattern. Si amount elle est négative, elle est considérée comme une valeur non signée et masquée avec le masque de taille approprié.

Les décalages arithmétiques ne génèrent jamais d’exceptions de dépassement.

Remarque

L’opérateur << peut être surchargé, ce qui signifie qu’une classe ou une structure peut redéfinir son comportement lorsqu’un opérande a le type de cette classe ou structure. Si votre code utilise cet opérateur sur une telle classe ou structure, veillez à comprendre son comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.

Exemple :

L’exemple suivant utilise l’opérateur << pour effectuer des décalages de gauche arithmétiques sur les valeurs intégrales. Le résultat a toujours le même type de données que celui de l’expression décalée.

Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1

Les résultats de l’exemple précédent sont les suivants :

  • result1 est 192 (0000 0000 1100 0000).

  • result2 est 3072 (0000 1100 0000 0000).

  • result3 est -32768 (1000 000 0000 000 0000).

  • result4 est 384 (0000 0001 10000 0000).

  • result5 est 0 (décalé 15 places à gauche).

La quantité de décalage pour result4 est calculée comme 17 ET 15, ce qui correspond à 1.

Voir aussi