JAVA里>>和>>>有什么区别?最好能举个例子

来源:百度知道 编辑:UC知道 时间:2024/06/09 08:49:57
如题

>> 为位移操作 比如24>>2 = 24 右移2位 = 24/ (2^2) = 24 / 4 = 6
与 << 类似 单纯的移位操作

而>>>的结果必然是正数 通常我们使用这个只是应用于
取随机正数 (rand.nextInt()) >>> 2
为带无符号的移位
比如 24 为 11000
>> 2 = 110 为6
>>>2 = 110 为6
不过如果是 -24
>> 2 = -6
>>>2 = 1111 1111 1111 1111 1111 1111 1111 1000
= 1111 1111 1111 1111 1111 1111 1111 1110
虽然也移动了2位 不过前面的其他位全部为1

而 <<<则在java内无该操作