2011-12-19 20 views
6

Soy nuevo en Java, y llegué a saber que hay dos operadores de desplazamiento a la derecha en java >> y >>>, pero solo un operador de desplazamiento a la izquierda <<. ¿Por que es esto entonces?¿Por qué hay dos operadores Right Shift y solo un operador Left Shift en Java?

+5

Según lo que sabe sobre los operadores de desplazamiento a la derecha, ¿tiene alguna idea? –

+1

Eso se explica en los [tutoriales] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) también. – PeterMmm

+0

@PeterMmm lo siento, no se encontró la página – sum2000

Respuesta

9

Debido a las operaciones de desplazamiento a la izquierda lógicas y aritméticas son idénticos (from wikipedia).

Right Left

Right Left

Observe lo que sucede con el bit de signo (bit más a la izquierda) en ambos cambios a la izquierda.

3

Los operadores de desplazamiento a la derecha son uno con (>>) y uno sin (>>>) signo-extensión. La operación de desplazamiento a la izquierda no tiene un componente de extensión de signo.

Por ejemplo, las siguientes expresiones son verdaderas:

(0x80000000 >> 1) == 0xC0000000 
(0x80000000 >>> 1) == 0x40000000 
+0

por qué.? soy nuevo aquí, perdóname si estoy haciendo la pregunta tonta – sum2000

+1

@ sum2000 ¿Dónde está el signo? –

+0

@DaveNewton ¿está aquí para responder o preguntar? – sum2000

Cuestiones relacionadas