Maison > Java > javaDidacticiel > Que signifie >>> en Java ?

Que signifie >>> en Java ?

青灯夜游
Libérer: 2019-11-18 16:00:31
original
14239 Les gens l'ont consulté

Que signifie >>> en Java ?

Que signifie en java ?

est l'opérateur de décalage en Java, ce qui signifie décalage à droite non signé.

Les opérandes de l'opérateur de décalage sont également des "bits" binaires. Ils peuvent être utilisés seuls pour gérer les types entiers (l’un des principaux types).

L'opérateur de décalage gauche "signé" (<<) peut décaler l'opérande du côté gauche de l'opérateur vers la gauche du nombre de bits spécifié sur le côté droit de l'opérateur (remplir les bits faibles) 0).

L'opérateur de décalage vers la droite "signé" (>>) déplace l'opérande du côté gauche de l'opérateur vers la droite du nombre de chiffres spécifié sur le côté droit du opérateur. L'opérateur de décalage à droite « signé » utilise « l'extension de signe » : si la valeur est positive, 0 est inséré dans le bit haut ; si la valeur est négative, 1 est inséré dans le bit haut.

Java ajoute également un opérateur de décalage vers la droite "non signé" (>>>) qui utilise "l'extension zéro": qu'il soit positif ou négatif, insérez 0 dans le peu élevé. Cet opérateur n'est pas disponible en C ou C++.

Si char, byte ou short sont décalés, ils seront automatiquement convertis en int avant que le décalage ne soit effectué. Seuls les 5 bits bas à droite sont utilisés. Cela nous empêche de déplacer un nombre irréaliste de chiffres dans un int. Si une valeur longue est traitée, le résultat final est également long. À ce stade, seuls les 6 bits faibles du côté droit seront utilisés pour empêcher le mouvement de dépasser le nombre de chiffres prêts à l'emploi dans la valeur longue.

Mais vous pouvez également rencontrer un problème lors de l'exécution d'un décalage à droite "non signé". Si vous effectuez une opération de décalage vers la droite sur un octet ou une valeur courte, vous risquez de ne pas obtenir le résultat correct (en particulier Java 1.0 et Java 1.1).

Ils seront automatiquement convertis en type int et décalés vers la droite. Mais "une extension nulle" ne se produit pas, vous obtenez donc un résultat de -1 dans ces cas. Vous pouvez utiliser l'exemple suivant pour tester votre implémentation :

public class URShift {
public static void main(String[] args) {
int i = -1;
i >>>= 10;
System.out.println(i);
long l = -1;
l >>>= 10;
System.out.println(l);
short s = -1;
s >>>= 10;
System.out.println(s);
byte b = -1;
b >>>= 10;
System.out.println(b);
}
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal