我曾经使用>>操作符进行右移。现在我用>>>替换它,并找到相同的结果。所以我无法弄清楚这两者是否基本平等。运算符>>和运算符>>>在java中有什么区别?
5
A
回答
6
第一个运算符符号扩展该值,移入符号位的副本;第二个总是转变为零。
其原因是为了进行位操作而模仿无符号整数,部分弥补了Java中无符号整型的缺失。
11
>>
是右移算术(有符号),>>>
是逻辑(无符号)右移,如Java tutorial中所述。试试他们的负值,你会看到一个区别。
3
This explains it really well。在同一页上还有一个简短的example。
但对于一个真正的简短摘要:
<< signed left shift - shifts a bit pattern to the left
0 0 1 1 1 => 0 1 1 1 0
>> signed right shift - shifts a bit pattern to the right
0 0 1 1 1 => 0 0 0 1 1
>>> unsigned right shift - shifts a zero into the leftmost position
1 1 1 0 => 0 0 1 1
~ unary bitwise complement operator
A | Result
0 | 1
1 | 0
0 | 1
1 | 0
& bitwise and
A | B | Result
0 | 0 | 0
1 | 0 | 0
0 | 1 | 0
1 | 1 | 1
^ xor
A | B | Result
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 0
| inclusive or
A | B | Result
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 1
相关问题
- 1. 运算符>>>在Java和JavaScript中有什么区别?
- 2. PostgreSQL中#>和 - >>运算符有什么区别?
- 3. “>>>”运算符 - 用于什么?
- 4. PHP运算符 - >和=>
- 5. >>>运算符在python中
- 6. 什么是c运算符>>
- 7. 使用运算符>>
- 8. Haskell(>>)运算符
- 9. PHP运算符' - >'$ foo-> {''}
- 10. 什么是 - >运算符?
- 11. 什么是()=>运算符?
- 12. 点(。)运算符和 - >在C++中有什么区别?
- 13. 在php中!=和<>运算符有什么区别?
- 14. scalaz中有>> monad运算符吗?
- 15. Javascript中的>>> =运算符是什么?
- 16. Java操作符>>和>>>之间有什么区别?
- 17. MySQL中的<>和!=运算符有什么区别?
- 18. 用>>>运算符溢出或不运算
- 19. Java中> =和=>有什么区别?
- 20. C++重载运算符<<和运算符>>
- 21. 关于istringstream和>>运算符
- 22. >><<和运算符重载
- 23. 按位运算符“>>”和“<<”?
- 24. ggplot2中的“+”运算符与magrittr中的“%>%”运算符有什么区别?
- 25. 字符串重载运算符“>>”
- 26. ActionScript赋值运算符,>>>是什么意思?
- 27. 这个JavaScript运算符是什么意思? >>>
- 28. C++运算符 - >
- 29. 什么是C#相当于Java无符号右移运算符>>>
- 30. !=和<>运算符有什么区别?