Trả lời
Nó làm điều tương tự như thế này:
a = a >>> b;
Trừ a
mà chỉ được đánh giá một lần (trong đó có sự khác biệt quan sát được nếu đánh giá của nó liên quan đến bất kỳ tác dụng phụ).
Và >>>
là unsigned (logical) right shift.
Cảm ơn bạn! Đây là một số mã giải mã/giải mã phức tạp điên rồ mà tôi đang xem tại đây. –
'a' chỉ được" đánh giá một lần "cho' a = a >>> b'. Nó không giống như lần thứ hai nó được nhìn lên. Cả hai biểu thức trả về giá trị trả về của biểu thức, không phải 'a' (được đặt thành giá trị). –
@Elijah: giả định là 'a' là trình giữ chỗ cho biểu thức tùy ý, không chỉ là số nhận dạng. –
Đó là một toán tử bitwise được gọi là dịch chuyển số không điền. Nó sẽ thay đổi biểu diễn nhị phân của a
sang phải bằng b
địa điểm và thay thế các mục rỗng bằng số không. Sau đó, kết quả sẽ được gán cho a
.
Tôi phải dịch giá trị theo số bit được chỉ định bởi giá trị bằng b, mà không cần duy trì dấu.
Giống như toán tử >> = quyền thay đổi giá trị, chỉ người đó không thay đổi dấu hiệu của số.
Ví dụ:
var a = -1;
// a now contains -1, or 11111111 11111111 11111111 11111111 binary
var b = 1;
a >>>= b;
// a now contains 2147483647, or 01111111 11111111 11111111 11111111 binary.
Cảm ơn bạn đã cung cấp ví dụ đó! –
Holy crap, đây là một số thứ phức tạp! o_0 – KyleFarris
Crockford points out rằng trong khi JavaScript đã Bitwise nhà khai thác như >>>
, sử dụng chúng trên đôi chính xác số dấu chấm động có nguồn gốc của nó ngụ ý chuyển đổi qua lại để nguyên trong nội bộ. Chúng sẽ không hiệu quả như các ngôn ngữ khác với các kiểu dữ liệu nguyên gốc.
- 1. Sự khác nhau giữa toán tử >> và toán tử >>> trong java là gì?
- 2. Trong F #, toán tử >> có nghĩa là gì?
- 3. :: a -> (a -> b) -> toán tử b (Haskell)
- 4. Các toán tử ">>" (mũi tên kép) và "|" (ống đơn) có nghĩa là trong JavaScript?
- 5. Toán tử '=>' có nghĩa là gì trong C#?
- 6. Toán tử -> (đâm) trong Ruby là gì?
- 7. Các toán tử này làm gì trong D 2.0: <> =! <> =! <= !> =
- 8. Toán tử C# => có nghĩa là gì?
- 9. Tên toán tử SQL cho "<>" là gì?
- 10. Làm gì>! và >>! làm trong tcsh
- 11. ">>>" có nghĩa là gì trong java?
- 12. Toán tử PHP <>
- 13. Tương đương với C# của toán tử thay đổi bên phải của Java là gì >>>
- 14. >> và >>> có nghĩa là gì trong Java?
- 15. quá tải toán tử ->
- 16. Toán tử Python 3 >> để in thành tệp
- 17. Tương đương với toán tử ba ca của Java (>>>) trong C#?
- 18. Toán tử mũi tên, '->', làm gì trong Java?
- 19. Trong các tham số kiểu Scala, điều gì làm - >> và - >>> có nghĩa là gì?
- 20. Điều gì => và() => có nghĩa là trong Scala
- 21. Điều gì -> _ => có nghĩa là trong Scala/Lift?
- 22. Sự khác biệt giữa >> và >>> trong Scala
- 23. >> Làm gì trong java?
- 24. "<<" and ">>" có nghĩa là gì trong C++ cho cout/cin?
- 25. 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?
- 26. Sự khác biệt giữa <> và! = Toán tử trong MySQL là gì?
- 27. Sự khác nhau giữa toán tử dấu chấm (.) Và -> trong C++ là gì?
- 28. Mã này có nghĩa là gì: "print >> sys.stderr"
- 29. Thuật ngữ chính xác cho ->, -> * và. * Là gì?
- 30. >> và 0xfffffff8 có nghĩa là gì?
Thực sự, bạn không thể sử dụng Google để tìm thông tin đó? –
Bạn đã thử Googling ">>> =" chưa? – Tinister
Một phần của mục tiêu của trang web này là để được tham khảo cuối cùng; Tôi không nghĩ rằng những câu hỏi đơn giản là không phù hợp. Và Google sẽ bỏ qua ">>>" trong một truy vấn; bạn phải biết tìm kiếm "toán tử" hoặc "toán tử bitwise". –