2011-12-19 5 views
6

Jestem nowicjuszem w Javie i dowiedziałem się, że istnieją dwa operatory Right Shift w java >> i >>>, ale tylko jeden operator przesunięty w lewo <<. Dlaczego tak jest?Dlaczego w środowisku Java działają dwa operatory przesunięcia w prawo i tylko jeden operator przesunięty w lewo?

+5

Na podstawie tego, co wiesz o operatorach z prawą zmianą, czy masz jakieś pomysły? –

+1

Jest to również wyjaśnione w [tutoriali] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html). – PeterMmm

+0

@PeterMmm przepraszam, strona nie została znaleziona – sum2000

Odpowiedz

3

Operatory zmiany prawej to jedne z (>>) i jedno bez rozszerzenia znaku (>>>). Operacja przesunięcia w lewo nie ma składnika rozszerzenia znaku.

Na przykład, następujące określenia są oba spełnione:

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

dlaczego? Jestem tu nowy, wybacz mi, jeśli zadaję głupie pytanie – sum2000

+1

@ sum2000 Gdzie jest bit znaku? –

+0

@DaveNewton jesteś tutaj, aby odpowiedzieć lub zapytać? – sum2000