2011-12-19 86 views
6

我是java新手,並且知道在java >>>>>中有兩個Right Shift運算符,但只有一個左移運算符<<。爲什麼這樣?爲什麼在Java中有兩個右移運算符和只有一個左移運算符?

+5

根據你對右移操作符的瞭解,你有什麼想法嗎? – 2011-12-19 13:35:08

+1

這也在[tutorials](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)中解釋過。 – PeterMmm 2011-12-19 13:37:24

+0

@PeterMmm對不起,頁面未找到 – sum2000 2011-12-19 13:38:23

回答

3

右移運算符是一個(>>),另一個沒有(>>>)符號擴展。左移操作沒有符號擴展組件。

例如,下面的表達式都爲真:

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

爲什麼?我在這裏是新的,原諒我,如果我問傻問題 – sum2000 2011-12-19 13:37:24

+1

@ sum2000標誌位在哪裏? – 2011-12-19 13:38:15

+0

@DaveNewton你在這裏回答或問? – sum2000 2011-12-19 13:39:28