2010-01-06 55 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

相关问题