Tôi mới sử dụng java và biết rằng có hai toán tử Shift phải trong java >>
và >>>
, nhưng chỉ có một toán tử shift trái <<
. Tại sao nó như vậy?Tại sao có hai toán tử Shift phải và chỉ có một toán tử Shift trái đơn trong Java?
6
A
Trả lời
9
Bởi vì hoạt động trái ca logic và số học là giống hệt nhau (from wikipedia).
Lưu ý những gì xảy ra với bit dấu (bit ngoài cùng bên trái) trong cả hai số còn lại ca.
3
Nhà điều hành dịch chuyển phải là một (>>
) và một tiện ích mở rộng đăng ký không có (>>>
). Thao tác dịch chuyển trái không có thành phần mở rộng ký hiệu.
Ví dụ, các từ ngữ sau đây đều đúng:
(0x80000000 >> 1) == 0xC0000000
(0x80000000 >>> 1) == 0x40000000
Các vấn đề liên quan
- 1. Tại sao chúng ta cần sử dụng toán tử shift trong java?
- 2. Tại sao có một toán tử sizeof ... trong C++ 0x?
- 3. Toán tử "và" Python có ints
- 4. phím Shift trong C++
- 5. Làm cách nào để sửa YACC shift/giảm xung đột từ toán tử tăng sau?
- 6. Tại sao không có toán tử [] cho danh sách std ::?
- 7. Toán tử có động C#?
- 8. Java - Trình tự hoạt động - Sử dụng hai toán tử chuyển nhượng trong một dòng đơn
- 9. Java?: Toán tử trong vb.net
- 10. Có một toán tử gia tăng ++ cho Java enum không?
- 11. C# bitwise shift trên ushort (UInt16)
- 12. Có cách nào để phân biệt giữa các phím Shift trái và phải không?
- 13. Có toán tử không (!) Trong regexp không?
- 14. Có thể tạo toán tử tùy chỉnh trong Java không?
- 15. Tại sao toán tử 'bằng' trong LINQ tham gia?
- 16. Tại sao toán tử xor trên hai byte tạo ra một int?
- 17. Tại sao C++ vẫn có một toán tử xóa [] và xóa?
- 18. bitwise không phải là toán tử
- 19. Regex và toán tử OR không có nhóm trong Python?
- 20. Toán tử C++() và 'sử dụng' Tuyên bố: Toán hạng trái phải là lỗi giá trị l
- 21. Có thể ghi đè các toán tử trong Java không?
- 22. Tại sao toán tử gán phải trả về một tham chiếu đến đối tượng?
- 23. Tại sao `: =` làm việc như một toán tử infix?
- 24. Toán tử điều kiện bị nhầm lẫn, nhưng tại sao?
- 25. tại sao chúng ta thích? đến ?? toán tử trong C#?
- 26. Tại sao toán tử gán bản sao quá tải cho một lớp singleton trong C++?
- 27. Toán tử không phải (!!) trong PHP
- 28. Tại sao Python có phương thức toán tử __ne__ thay vì chỉ __eq__?
- 29. Toán tử bậc ba có tồn tại trong R không?
- 30. Ghép nối chuỗi Java với + toán tử
Dựa trên những gì bạn biết về toán tử dịch chuyển phải, bạn có ý tưởng nào không? –
Điều đó cũng được giải thích trong [hướng dẫn] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html). – PeterMmm
@PeterMmm xin lỗi, không tìm thấy trang – sum2000