Maison >Java >javaDidacticiel >Méthodes d'opération de décalage en Java (<<, >>, >>>)

Méthodes d'opération de décalage en Java (<<, >>, >>>)

怪我咯
怪我咯original
2017-06-30 10:31:081962parcourir

L'éditeur ci-dessous vous proposera un article sur les méthodes d'opération de décalage Java071af19a55f4da1989e8c02b755ba052>, >>> L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour jeter un œil.

4fbc8a5e6db24516458e099ba81ac578>, signé décalage à droite, décale la valeur binaire globale de l'opérande vers la droite d'un nombre spécifié de chiffres, complète les bits de poids fort des entiers avec 0 et complète les bits de poids fort des nombres négatifs avec 1 (en gardant le signe des nombres négatifs inchangé).


int rightShift = 10;
System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift));
int newRightShift = rightShift >> 2;
System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift));  //右移n位后的运算数x十进制结果,x = x / 2


Les résultats ci-dessus sont des entiers positifs, et les résultats de l'opération sont les suivants.

Ensuite, regardons ce qui se passe lorsqu'un nombre négatif est décalé de 2 bits vers la droite. Le résultat de l'opération est le suivant.

Le principe de base du décalage à droite signé des nombres négatifs est toujours le même que celui du décalage à gauche. La différence est le calcul du résultat, car il s'agit d'un décalage à droite signé, et le dernier est toujours décalé vers la droite. Le résultat sera -1. Pour résumer, si l'opérande est un nombre pair, alors le résultat de son opération est x = -(|x| / 2). Si l'opérande est un nombre impair, alors le résultat de son opération est x = -(|x| / 2). ) - 1.

>>>, décalage à droite non signé, qu'ils soient positifs ou négatifs, les bits hauts sont remplis avec 0 (le bit de signe est ignoré)

Regardez d'abord les nombres positifs, les nombres positifs >>>Le décalage à droite non signé et le décalage à droite signé ont les mêmes résultats de calcul

int rightShift = 10;
System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift));
int newRightShift = rightShift >>> 2;
System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift));  //右移n位后的云算数x十进制结果,x = x / 2

Les résultats ci-dessus sont des entiers positifs et les résultats de l'opération sont les suivants.

Ensuite, regardons les entiers négatifs. Les résultats de l’opération sont les suivants.

Bien que le binaire après décalage non signé et le binaire après décalage signé se ressemblent, les résultats sont assez différents. Rappelez-vous l'opération de décalage à droite signée, en fait, ce qui précède est un. opération arithmétique qui ignore les signes, c'est-à-dire que les bits hauts sont uniformément remplis de 0.

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