Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 :
result1est 192 (0000 0000 1100 0000).result2est 3072 (0000 1100 0000 0000).result3est -32768 (1000 000 0000 000 0000).result4est 384 (0000 0001 10000 0000).result5est 0 (décalé 15 places à gauche).
La quantité de décalage pour result4 est calculée comme 17 ET 15, ce qui correspond à 1.