Máy tính bitwise
Thực hiện các phép toán bitwise trên các số nguyên và xem kết quả ở dạng thập phân, thập lục phân và nhị phân.
Cách thức hoạt động
- Nhập hai số: nhập các giá trị để thực hiện phép toán — ở dạng thập phân, nhị phân (tiền tố 0b) hoặc thập lục phân (tiền tố 0x).
- Chọn phép toán: chọn AND, OR, XOR, NOT, dịch trái (<<) hoặc dịch phải (>>).
- Xem kết quả: đầu ra hiển thị kết quả ở dạng thập phân, nhị phân và thập lục phân cùng một lúc, với hình ảnh hóa bitwise.
Tại sao sử dụng máy tính bitwise?
Các phép toán bitwise là cơ bản trong lập trình hệ thống, mật mã học, phát triển trò chơi, đồ họa, mạng và hệ thống nhúng. Hiểu cách AND, OR, XOR và các phép dịch xử lý các bit riêng lẻ là rất quan trọng để bật/tắt cờ, đóng gói dữ liệu và triển khai các thuật toán hiệu quả. Máy tính này hiển thị phép toán ở mức bit để xem chính xác cách mỗi bit bị ảnh hưởng.
Tính năng
- Tất cả các toán tử bitwise: AND (&), OR (|), XOR (^), NOT (~), dịch trái (<<) và dịch phải (>>).
- Đầu vào đa cơ số: nhập các số ở dạng thập phân, nhị phân (0b…) hoặc thập lục phân (0x…).
- Đầu ra đa cơ số: các kết quả được hiển thị đồng thời ở dạng thập phân, nhị phân và thập lục phân.
- Hình ảnh hóa các bit: một lưới trực quan hiển thị các bit nào được kích hoạt cho mỗi toán hạng và cho kết quả.
- Chế độ có dấu/không dấu: chuyển đổi giữa các số nguyên 8, 16, 32 và 64 bit.
Câu hỏi thường gặp
XOR dùng để làm gì trong lập trình?
XOR (^) được sử dụng để đảo bit, mã hóa/làm rối đơn giản, hoán đổi các biến mà không cần biến tạm, kiểm tra chẵn lẻ và trộn các hash. Nó trả về 1 khi các bit khác nhau và 0 khi chúng giống nhau.
Sự khác biệt giữa << và >> là gì?
Dịch trái (<<) di chuyển tất cả các bit sang trái, tương đương với phép nhân với lũy thừa của 2. Dịch phải (>>) di chuyển các bit sang phải, tương đương với phép chia cho lũy thừa của 2. Dịch phải số học giữ nguyên bit dấu; dịch phải logic điền vào bằng số 0.
Cách kích hoạt hoặc vô hiệu hóa một bit cụ thể?
Để kích hoạt bit n: value |= (1 << n). Để vô hiệu hóa bit n: value &= ~(1 << n). Để đảo bit n: value ^= (1 << n). Để kiểm tra nếu bit n được kích hoạt: (value & (1 << n)) !== 0.