Kok*_*zzu 13 scala operators bit-shift
Scala中的>>和>>>运算符有什么区别吗?
scala> 0x7f >>> 1
res10: Int = 63
scala> 0x7f >> 1
res11: Int = 63
scala> 0x7f >> 4
res12: Int = 7
scala> 0x7f >>> 4
res13: Int = 7
Run Code Online (Sandbox Code Playgroud)
Jon*_*art 23
的>>操作者保留符号(Sign-延伸),而>>>零的最左边的位(零扩展).
-10>>2
res0: Int = -3
-10>>>2
res1: Int = 1073741821
Run Code Online (Sandbox Code Playgroud)
对于像C这样具有有符号和无符号类型的语言,这是不必要的,这与Java不同,Java也有>>>(因为它没有无符号整数).
它们与Java中的含义相同。
\n来自Java\xe2\x84\xa2 教程 - 按位和位移运算符:
\n\n\n有符号左移运算符“<<”将位模式向左移动,有符号右移运算符“>>”将位模式向右移动。位模式由左侧操作数和右侧操作数要移位的位置数给出。无符号右移运算符“>>”将零移到最左边的位置,而“>>”之后的最左边的位置取决于符号扩展。
\n
>>>只存在于Java中,而不存在于C或C++中。