Cách Xử Lý Bit trong JavaScript - casino

/imgposts/6bnn1b0l.jpg

Dữ liệu được trả về là một byte, tức là 8 bit. Mỗi bit biểu thị trạng thái bật/tắt của một thiết bị cụ thể. Như vậy, một byte có thể đại diện cho trạng thái bật/tắt của 8 thiết bị khác nhau.

Làm thế nào để sử dụng JavaScript để phân tích các bit này?

Chúng ta có thể sử dụng phương thức dataView.getUint8(N) để chuyển đổi dữ liệu array buffer thành số nguyên, ví dụ như biến flags dưới đây. Sau đó, chúng ta sẽ so sánh các bit để xác định trạng thái của từng thiết bị.

1var flags = 5; // Bằng 0101 trong hệ nhị phân
2if (flags & 4) {
3    // Nếu điều kiện đúng, nghĩa là bit thứ ba đang được bật
4}
5// Giải thích: 0101 & 0100 => 0100 => Đúng (True)

Lưu ý rằng ở đây chúng ta sử dụng toán tử AND bit (&). Nếu bạn dùng hai dấu &&, thì đó là toán tử logic AND, không phải AND bit.

Một cách đơn giản và trực quan hơn để biểu diễn các bit bật/tắt là sử dụng toán tử dịch trái (<<). Toán tử này di chuyển giá trị nhị phân của một số sang trái theo số lượng bit đã chỉ định, đồng thời bổ sung các bit bằng 0 vào phần cuối. Điều này tương đương với việc nhân số đó với lũy thừa của 2.

1console.log(1 << 2); // Kết quả: 4
2console.log(1 << 3); // Kết quả: 8
3console.log(1 << 4); // Kết quả: 16
4console.log(1 << 5); // Kết quả: 32

Bạn có thể sử dụng phép dịch bit để đánh bài online tạo ra các mặt nạ bit, giúp kiểm tra trạng thái của từng thiết bị một cách dễ dàng.

Ví dụ:

 1var flags = 5; // Tương ứng [f88 bóng đá](/blog/building-distributed-applications-in-gin/)  với 0101 trong hệ nhị phân
 2
 3// Kiểm tra thiết bị thứ nhất (bit đầu tiên)
 4if (flags & (1 << 0)) {
 5    console.log("Thiết bị thứ nhất đang bật");
 6}
 7
 8// Kiểm tra thiết bị thứ ba (bit thứ ba)
 9if (flags & (1 << 2)) {
10    console.log("Thiết bị thứ ba đang bật");
11}
  • Toán tử AND bit (&) giúp kiểm tra xem một bit cụ thể có được bật hay không.
  • Toán tử dịch trái (<<) giúp tạo ra các mặt nạ bit nhanh chóng và dễ hiểu.
  • Kết hợp cả hai toán tử này, bạn có thể dễ dàng phân tích trạng thái của nhiều thiết bị từ một byte duy nhất.

Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn về cách xử lý bit trong JavaScript!