Định nghĩa
a >>> b dịch bit của a sang phải b vị trí, lấp 0 vào bên trái (unsigned). Khác với >> giữ bit dấu (sign-propagating).
Ví dụ
<script>
var a = -14; // nhị phân 32-bit: 11111111111111111111111111110010
var b = 2;
var result = a >>> b; // dịch phải 2, lấp 0 trái
document.write("(a >>> b) = " + result); // 1073741820
</script>
Giải thích nhị phân
-14 (int32): 11111111111111111111111111110010 >>> 2: 00111111111111111111111111111100 = 1073741820 (dương lớn)
So sánh >> vs >>>
| Toán tử | Tên | Bit trái | Ví dụ -14 >> 2 | Ví dụ -14 >>> 2 |
|---|---|---|---|---|
| >> | Sign-propagating right shift | Giữ bit dấu (1) | -4 | - |
| >>>> | Zero-fill right shift | Lấp 0 | - | 1073741820 |
Ứng dụng
- Chuyển signed 32-bit sang unsigned:
value >>> 0. - Thao tác bitmask, hash, mã hóa, graphics.
>>> 0thường dùng để ép thành unsigned int 32-bit.