我曾經使用>>操作符進行右移。現在我用>>>替換它,並找到相同的結果。所以我無法弄清楚這兩者是否基本平等。運算符>>和運算符>>>在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. 「>>>」運算符 - 用於什麼?
- 3. >>>運算符在python中
- 4. 什麼是c運算符>>
- 5. Haskell(>>)運算符
- 6. 使用運算符>>
- 7. 什麼是()=>運算符?
- 8. 在php中!=和<>運算符有什麼區別?
- 9. 點(。)運算符和 - >在C++中有什麼區別?
- 10. Javascript中的>>> =運算符是什麼?
- 11. Java操作符>>和>>>之間有什麼區別?
- 12. C++重載運算符<<和運算符>>
- 13. >><<和運算符重載
- 14. Java中> =和=>有什麼區別?
- 15. 字符串重載運算符「>>」
- 16. 這個JavaScript運算符是什麼意思? >>>
- 17. - >運算符在Perl中做什麼?
- 18. >> =運算符在golang中做了什麼?
- 19. C++ << >>運算符
- 20. 使用>>運算符時出錯
- 21. >>運算符重載... C++
- 22. Javascript 32位數字和運算符&和>>>
- 23. =>運算符vs =運算符
- 24. - >, - > *和。*運算符的正確名稱是什麼?
- 25. 不等號運算符:!= vs <>,有什麼區別?
- 26. - > Clojure中的運算符
- 27. 在Purescript; - >和=>有什麼區別?
- 28. =>運算符是做什麼的?
- 29. 這個運算符是什麼「=>」?
- 30. - > *運算符究竟是什麼?