2010-01-06 85 views
3

操作符>>和>>>有什麼區別?Java操作符>>和>>>之間有什麼區別?

+0

http://en.wikipedia.org/wiki/Bitwise_operation#Shifts_in_C.2C_C.2B.2B_and_Java – 2010-01-06 11:48:37

+0

這是八...嘿,來吧。 SO是一個學習的好地方,但如果你從這裏開始學習,你會學得更多,更快,更好:http:// java。sun.com/docs/books/tutorial/java/index.html – Fredrik 2010-01-06 11:50:02

+3

坦白說,你爲什麼不穀歌呢? SO不是Google的替代品。 – 2010-01-06 11:52:19

回答

5

>>>右移,在左端填充0,而>>填充符號位。

這對有符號的整數類型(即除byte之外的所有類型)都有所不同,其中負值具有置位符號位。

+0

你的意思是「char」嗎? – scravy 2012-01-22 11:35:28

4

>>簽名向右移位運算和>>>無符號向右移位運算

Signed Right Shift Operator

右移>>操作者的數量移位 左操作數到右側 帶符號擴展由其右操作數指定的 位。 這意味着n位置 處的值被移到右側,導致 n個高位包含與未位移值相同的值。 該運算符從不拋出 異常。

Unsigned Right Shift Operator

無符號的右移位>>>操作者 後「>>」移位零到最左邊的位置 然而最左邊的位置 取決於符號擴展。

2

帶符號的右移運算符「>>」 將位模式向右移位。 位模式由左側的 操作數給出,並且 的位數由右側操作數移位。 無符號右移運算符 「>>>」將零移入最左邊的 位置,而「>>」之後的最左邊位置 取決於符號擴展。

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html

相關問題