Tôi đã sử dụng toán tử >> để dịch chuyển đúng. Bây giờ tôi đã thay thế nó bằng >>> và tìm thấy kết quả tương tự. Vì vậy, tôi không thể tìm ra liệu hai điều này về cơ bản có bằng nhau hay không.Sự khác nhau giữa toán tử >> và toán tử >>> trong java là gì?
5
A
Trả lời
6
Toán tử đầu tiên ký hiệu mở rộng giá trị, dịch chuyển thành bản sao bit dấu; thứ hai luôn thay đổi theo số không.
Lý do cho việc này là mô phỏng các số nguyên không dấu cho mục đích thực hiện thao tác bit, bù một phần cho việc thiếu các loại tích phân không dấu trong Java.
11
>>
là dịch chuyển số học (đã ký), >>>
là sự dịch chuyển hợp lý (chưa ký), như được mô tả trong Java tutorial. Hãy thử chúng trên một giá trị tiêu cực, và bạn sẽ thấy một sự khác biệt.
3
This explains it really well. Trên cùng một trang cũng có một số example ngắn.
Nhưng đối với một bản tóm tắt ngắn gọn thật:
<< 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
Các vấn đề liên quan
- 1. Toán tử >>> = trong Javascript là gì?
- 2. Trong F #, toán tử >> có nghĩa là gì?
- 3. :: a -> (a -> b) -> toán tử b (Haskell)
- 4. Sự khác biệt giữa >> và >>> trong Scala
- 5. Sự khác nhau giữa toán tử dấu chấm (.) Và -> trong C++ là gì?
- 6. Bao giờ bất kỳ hiệu suất nào khác nhau giữa Java >> và >>> toán tử dịch chuyển phải không?
- 7. Sự khác biệt giữa <> và! = Toán tử trong MySQL là gì?
- 8. Tương đương với toán tử ba ca của Java (>>>) trong C#?
- 9. Toán tử PHP <>
- 10. quá tải toán tử ->
- 11. Các toán tử này làm gì trong D 2.0: <> =! <> =! <= !> =
- 12. Toán tử Python 3 >> để in thành tệp
- 13. Làm gì>! và >>! làm trong tcsh
- 14. Toán tử mũi tên, '->', làm gì trong Java?
- 15. Tương đương với C# của toán tử thay đổi bên phải của Java là gì >>>
- 16. Sự khác nhau giữa <a_element /> và <a_element xsi: nil = "true" /> là gì?
- 17. Toán tử '=>' có nghĩa là gì trong C#?
- 18. Toán tử -> (đâm) trong Ruby là gì?
- 19. >> và >>> có nghĩa là gì trong Java?
- 20. Các toán tử ">>" (mũi tên kép) và "|" (ống đơn) có nghĩa là trong JavaScript?
- 21. Sự khác nhau giữa ~> và> = khi chỉ định rubygem trong Gemfile là gì?
- 22. Sự khác nhau giữa ">" và "&>" trong bash là gì?
- 23. Sự khác biệt giữa '->' (toán tử mũi tên) và '.' (dấu chấm toán tử) trong Objective-C?
- 24. Tên toán tử SQL cho "<>" là gì?
- 25. Toán tử C# => có nghĩa là gì?
- 26. Sự khác nhau giữa HashSet <T> và Danh sách <T> là gì?
- 27. Sự khác nhau giữa <% %> và <%=%> là gì?
- 28. Java: Sự khác biệt giữa <init> và <clinit> là gì?
- 29. Sự khác nhau giữa Class clazz và Class <?> clazz trong java là gì?
- 30. XSLT: sự khác nhau giữa <copy-of> và <apply-templates> là gì?