Plus d'informations sur Opérateurs de type bit à bit et de décalage de bit
>> Signed right shift
>>> Unsigned right shift
La configuration binaire est donnée par l'opérande de gauche, et le nombre de positions à décaler par l'opérande de droite. L'opérateur de décalage droit non signé >>>
déplace un zéro dans la position la plus à gauche ,
tandis que la position la plus à gauche après >>
dépend de l'extension du signe.
En termes simples >>>
toujours déplace un zéro dans la position la plus à gauche alors que >>
se déplace en fonction du signe du nombre, c'est-à-dire 1 pour un nombre négatif et 0 pour un nombre positif.
Par exemple, essayez avec des nombres négatifs et positifs.
int c = -153;
System.out.printf("%32s%n",Integer.toBinaryString(c >>= 2));
System.out.printf("%32s%n",Integer.toBinaryString(c <<= 2));
System.out.printf("%32s%n",Integer.toBinaryString(c >>>= 2));
System.out.println(Integer.toBinaryString(c <<= 2));
System.out.println();
c = 153;
System.out.printf("%32s%n",Integer.toBinaryString(c >>= 2));
System.out.printf("%32s%n",Integer.toBinaryString(c <<= 2));
System.out.printf("%32s%n",Integer.toBinaryString(c >>>= 2));
System.out.printf("%32s%n",Integer.toBinaryString(c <<= 2));
sortie :
11111111111111111111111111011001
11111111111111111111111101100100
111111111111111111111111011001
11111111111111111111111101100100
100110
10011000
100110
10011000
2 votes
Duplicatas possibles : L'opérateur >> ou >>> de Java ? , Différence entre les opérateurs >>> et >>