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
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