我曾經使用>>操作符進行右移。現在我用>>>替換它,並找到相同的結果。所以我無法弄清楚這兩者是否基本平等。運算符>>和運算符>>>在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. !=和<>運算符有什麼區別?