Java Language Les opérateurs de quart (<<, >> et >>>)


Exemple

Le langage Java fournit trois opérateurs pour effectuer un décalage binaire sur des valeurs entières de 32 et 64 bits. Ce sont tous des opérateurs binaires, le premier opérande étant la valeur à déplacer et le second opérande indiquant la distance à déplacer.

  • Le << ou l' opérateur de décalage vers la gauche déplace la valeur donnée par le premier opérande vers la gauche par le nombre de positions de bits fournis par le deuxième opérande. Les positions vides à droite sont remplies de zéros.

  • L'opérateur de décalage « arithmétique » ou « arithmétique» décale la valeur donnée par le premier opérande vers la droite du nombre de positions binaires données par le second opérande. Les positions vides à gauche sont remplies en copiant le bit le plus à gauche. Ce processus est appelé extension de signe .

  • L'opérateur de décalage à droite ">>>" ou logique déplace la valeur donnée par le premier opérande vers la droite par le nombre de positions de bits fournies par le second opérande. Les positions vides à gauche sont remplies de zéros.

Remarques:

  1. Ces opérateurs nécessitent une valeur int ou long comme premier opérande et produisent une valeur du même type que le premier opérande. (Vous aurez besoin d'utiliser une distribution de type explicite lors de l' affectation du résultat d'un passage à un byte , à short ou char variable.)

  2. Si vous utilisez un opérateur de décalage avec un premier opérande qui est un byte , char ou short , il est promu à un int et l'opération produit un int .)

  3. Le second opérande est réduit modulo par le nombre de bits de l'opération pour donner la valeur du décalage. Pour plus d'informations sur le concept mathématique des mods , voir Exemples de modules .

  4. Les bits décalés de l'extrémité gauche ou droite par l'opération sont ignorés. (Java ne fournit pas un opérateur primitif "rotate".)

  5. L'opérateur de décalage arithmétique est équivalent en divisant un nombre (complément à deux) par une puissance de 2.

  6. L'opérateur de décalage de gauche est équivalent en multipliant un nombre (complément à deux) par une puissance de 2.

Le tableau suivant vous aidera à voir les effets des trois opérateurs de quart. (Les nombres ont été exprimés en notation binaire pour faciliter la visualisation.)

Opérande1 Opérande2 << >> >>>
0b0000000000001011 0 0b0000000000001011 0b0000000000001011 0b0000000000001011
0b0000000000001011 1 0b0000000000010110 0b0000000000000101 0b0000000000000101
0b0000000000001011 2 0b0000000000101100 0b0000000000000010 0b0000000000000010
0b0000000000001011 28 0b1011000000000000 0b0000000000000000 0b0000000000000000
0b0000000000001011 31 0b1000000000000000 0b0000000000000000 0b0000000000000000
0b0000000000001011 32 0b0000000000001011 0b0000000000001011 0b0000000000001011
... ... ... ... ...
0b1000000000001011 0 0b1000000000001011 0b1000000000001011 0b1000000000001011
0b1000000000001011 1 0b0000000000010110 0b1100000000000101 0b0100000000000101
0b1000000000001011 2 0b0000000000101100 0b1110000000000010 0b00100000000000100
0b1000000000001011 31 0b1000000000000000 0b1111111111111111 0b0000000000000001

Il y a des exemples de l'utilisateur des opérateurs de décalage dans la manipulation de bits