Java操作符>>和>>>之间有什么区别?
>>>
右移,在左端填充0,而>>
填充符号位。
这对有符号的整数类型(即除byte
之外的所有类型)都有所不同,其中负值具有置位符号位。
你的意思是“char”吗? – scravy 2012-01-22 11:35:28
>>
签名向右移位运算和>>>
无符号向右移位运算
右移
>>
操作者的数量移位 左操作数到右侧 带符号扩展由其右操作数指定的 位。 这意味着n位置 处的值被移到右侧,导致 n个高位包含与未位移值相同的值。 该运算符从不抛出 异常。
无符号的右移位
>>>
操作者 后“>>”移位零到最左边的位置 然而最左边的位置 取决于符号扩展。
带符号的右移运算符“>>” 将位模式向右移位。 位模式由左侧的 操作数给出,并且 的位数由右侧操作数移位。 无符号右移运算符 “>>>”将零移入最左边的 位置,而“>>”之后的最左边位置 取决于符号扩展。
从http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html
下面是实施例的说明:
http://www.roseindia.net/java/master-java/bitwise-bitshift-operators.shtml
>>
在符号填充左边的符号位(即,对于填充在1为负值,0正面),而>>>
不(总是0)。在转换负值时这很方便。没有<<<
,因为符号位在左侧,因此<<
已经表现得像<<<
会(填充零,没有别的)。
http://en.wikipedia.org/wiki/Bitwise_operation#Shifts_in_C.2C_C.2B.2B_and_Java – 2010-01-06 11:48:37
这是八...嘿,来吧。 SO是一个学习的好地方,但如果你从这里开始学习,你会学得更多,更快,更好:http:// java。sun.com/docs/books/tutorial/java/index.html – Fredrik 2010-01-06 11:50:02
坦白说,你为什么不谷歌呢? SO不是Google的替代品。 – 2010-01-06 11:52:19