Maison  >  Article  >  Java  >  Opérateurs de décalage et affectations abrégées au niveau du bit

Opérateurs de décalage et affectations abrégées au niveau du bit

王林
王林original
2024-08-17 18:48:32338parcourir

1. Opérateurs de décalage de bits

  • << : Décalage vers la gauche.
  • >> : Décalage vers la droite.
  • >>> : décalage à droite non signé (avec remplissage nul).

2. Syntaxe générale des opérateurs de décalage
valeur ≪≪ num-bits : décale les bits de valeur vers la gauche.
valeur >> num-bits : décale les bits de valeur vers la droite, en préservant le bit de signe.
valeur >>> num-bits : décale les bits de valeur vers la droite, en insérant des zéros à gauche.

3. Décalage vers la gauche

  • Chaque décalage vers la gauche entraîne le déplacement de tous les bits de la valeur d'une position vers la gauche.
  • Un bit 0 est inséré à droite.
  • Effet : Multiplication de la valeur par 2 à chaque déplacement.

4. Décalage vers la droite

  • Chaque décalage vers la droite déplace tous les bits d'une position vers la droite.
  • Le bit de signe est conservé : 0 pour les valeurs positives et 1 pour les valeurs négatives.
  • Effet : Divisez la valeur par 2 à chaque décalage, avec arrondi à l'inférieur.

5. Décalage vers la droite Pas de signal (>>>)

  • Aucune préservation des bits de signe ; insère 0 à gauche.
  • Utilisé dans les modèles de bits où la valeur est traitée comme un nombre non signé.

6. Le déplacement n'est pas rotationnel

  • Les bits décalés sont perdus.
  • Le décalage ne permet pas la récupération des bits décalés.

Exemple :
Maj gauche et droite
*ShiftDémo *

Attention lors du déplacement d'octets et de valeurs courtes

  • Java promeut automatiquement byte et short en int lors de l'évaluation d'une expression.

Exemple :

  • Décalage d'une valeur d'octet négative vers la droite : lorsqu'ils sont promus en int, les bits d'ordre supérieur sont remplis par 1.
  • Lors d'un déplacement vers la droite avec un remplissage de zéros (>>>), cela peut causer des problèmes car les 24 premiers bits seront 1 avant que les zéros ne commencent à apparaître.

Affectations abrégées avec des opérateurs au niveau du bit

  • Tous les opérateurs binaires au niveau du bit ont une forme abrégée qui combine une affectation avec l'opération au niveau du bit.

Exemple

x = x ^ 127;
x ^= 127;

Os operadores de deslocamento e atribuições abreviadas bitwise

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn