Kết nối qua MCP →

Nhập phép tính

Công thức

Quảng cáo

Kết quả

x AND y (thập phân)
98
x = 115   y = 234 (decimal)
Cơ số AND OR XOR
Thập phân (10) 98 251 153
Thập lục phân (16) 62 fb 99
Bát phân (8) 142 373 231
Lục phân (6) 242 1055 413
Nhị phân (2) 1100010 11111011 10011001

Công cụ này làm gì

Công cụ này tính ba phép logic bitwise cơ bản nhất — AND, OR và XOR — giữa hai số nguyên không âm. Mỗi toán hạng có thể được nhập theo hệ thập phân (cơ số 10), thập lục phân/hex (cơ số 16), bát phân (cơ số 8), lục phân (cơ số 6) hoặc nhị phân (cơ số 2). Kết quả của từng phép tính sau đó được hiển thị ở cả năm hệ cơ số, giúp bạn đọc theo đúng định dạng mà công việc của mình yêu cầu. Các giá trị được xử lý dưới dạng số không dấu (unsigned) và hỗ trợ đầy đủ dải từ 0 đến \(2^{64} - 1\).

Cách sử dụng

Nhập số thứ nhất vào ô x và chọn hệ cơ số mà số đó được viết. Làm tương tự với số thứ hai y. Phần chọn cơ số chỉ ảnh hưởng đến cách văn bản được phân tích (parse) — phép tính luôn được thực hiện trên giá trị số nguyên gốc. Bảng kết quả sẽ liệt kê AND, OR và XOR theo các hàng thập phân, hex, bát phân, lục phân và nhị phân.

Giải thích công thức

Các phép bitwise tác động lên dạng biểu diễn nhị phân của từng số nguyên, xét từng vị trí bit một. Phép AND đặt bit kết quả bằng 1 chỉ khi cả hai bit đầu vào đều là 1. Phép OR đặt bit kết quả bằng 1 khi có ít nhất một bit đầu vào là 1. Phép XOR (OR loại trừ) đặt bit kết quả bằng 1 khi đúng một trong hai bit đầu vào là 1 — điều này khiến nó cực kỳ phù hợp cho việc kiểm tra chẵn lẻ (parity) và tính checksum, bởi XOR của một giá trị với chính nó luôn bằng 0.

$$\begin{gathered} X = \text{parse}\!\left(\text{x},\ \text{base}_x\right), \quad Y = \text{parse}\!\left(\text{y},\ \text{base}_y\right) \\[1.2em] \text{AND} = X \mathbin{\&} Y, \quad \text{OR} = X \mid Y, \quad \text{XOR} = X \oplus Y \end{gathered}$$
Bảng chân trị AND, OR và XOR theo bit hiển thị dưới dạng lưới bit 2x2
Các phép AND, OR và XOR áp dụng theo từng bit.

Ví dụ minh họa

Lấy \(x = 115\) và \(y = 234\) (cả hai đều ở hệ thập phân). Ở dạng nhị phân, \(115 = 0111\,0011\) và \(234 = 1110\,1010\). Phép AND cho $$0110\,0010 = 98 = \text{hex } 62 = \text{bát phân } 142 = \text{lục phân } 242 = \text{nhị phân } 1100010.$$ Phép OR cho $$1111\,1011 = 251 = \text{hex } fb = \text{bát phân } 373 = \text{lục phân } 1055.$$ Phép XOR cho $$1001\,1001 = 153 = \text{hex } 99 = \text{bát phân } 231 = \text{lục phân } 413 = \text{nhị phân } 10011001.$$

Hai số nhị phân thẳng cột với kết quả XOR theo bit bên dưới
Phép toán theo bit so sánh hai đầu vào theo từng cột bit một.

Bảng Sự Thật Bitwise

Các phép toán bitwise hoạt động trên từng cặp bit một cách độc lập. Bảng dưới đây hiển thị mọi tổ hợp có thể có của hai bit đầu vào \(A\) và \(B\) và bit đầu ra kết quả cho AND (\(\&\)), OR (\(\mid\)) và XOR (\(\oplus\)).

A B A AND B (\(A \mathbin{\&} B\)) A OR B (\(A \mid B\)) A XOR B (\(A \oplus B\))
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Nói cách khác: AND trả về 1 chỉ khi cả hai bit là 1; OR trả về 1 khi ít nhất một bit là 1; XOR trả về 1 khi các bit khác nhau. Khi hai số nguyên nhiều bit được kết hợp, phép toán được áp dụng cho từng vị trí bit căn chỉnh riêng biệt. Ví dụ, kết hợp \(12 = 1100_2\) và \(10 = 1010_2\) theo bitwise cho AND \(=1000_2 = 8\), OR \(=1110_2 = 14\), và XOR \(=0110_2 = 6\).

Bảng Chuyển Đổi Chữ Số Cơ Số

Trước khi tính AND, OR hoặc XOR, hãy xác nhận rằng các toán hạng của bạn được nhập dưới dạng cơ số chính xác. Senary là cơ số 6 (chữ số 0–5); octal là cơ số 8 (chữ số 0–7); hexadecimal là cơ số 16 (chữ số 0–9 rồi A–F). Bảng liệt kê thập phân 0–16 trên tất cả năm cơ số được hỗ trợ.

Thập Phân (10) Thập lục phân (16) Bát phân (8) Lục phân (6) Nhị Phân (2)
0 0 0 0 0
1 1 1 1 1
2 2 2 2 10
3 3 3 3 11
4 4 4 4 100
5 5 5 5 101
6 6 6 10 110
7 7 7 11 111
8 8 10 12 1000
9 9 11 13 1001
10 A 12 14 1010
11 B 13 15 1011
12 C 14 20 1100
13 D 15 21 1101
14 E 16 22 1110
15 F 17 23 1111
16 10 20 24 10000

Bạn có thể xác minh bất kỳ giá trị nào trong cơ số khác bằng bộ chuyển đổi nhị phân 1100, bộ chuyển đổi này trả về thập phân 12.

Định Nghĩa & Từ Vựng

Bit
Đơn vị nhỏ nhất của thông tin kỹ thuật số, nhận giá trị 0 hoặc 1. Mọi số nguyên trong máy tính này được xử lý dưới dạng một chuỗi các bit.
Phép toán bitwise
Một phép toán được áp dụng độc lập cho từng bit tương ứng của hai toán hạng. AND, OR và XOR là ba phép toán kết hợp được tính toán ở đây.
Cơ số (radix)
Số lượng chữ số riêng biệt mà một hệ thống số vị trí sử dụng. Thập phân có cơ số 10, nhị phân có cơ số 2, octal có cơ số 8, senary có cơ số 6 và hexadecimal có cơ số 16. Mỗi vị trí chữ số biểu thị một lũy thừa của cơ số.
Số nguyên không dấu
Một số nguyên không âm không có bit dấu; tất cả các bit đóng góp vào độ lớn. Công cụ này chỉ chấp nhận các giá trị không dấu.
Senary
Hệ đánh số cơ số 6 sử dụng chữ số 0–5. Các giá trị vị trí là lũy thừa của 6, ví dụ \(24_6 = 2\times6 + 4 = 16\).
Hexadecimal
Hệ đánh số cơ số 16 sử dụng chữ số 0–9 và chữ cái A–F (trong đó A=10 … F=15). Mỗi chữ số hex ánh xạ rõ ràng chính xác bốn bit nhị phân.
Octal
Hệ đánh số cơ số 8 sử dụng chữ số 0–7. Mỗi chữ số octal ánh xạ chính xác ba bit nhị phân.
Mặt nạ
Một giá trị không đổi được sử dụng với phép toán bitwise để chọn, đặt hoặc xóa các bit cụ thể — ví dụ ANDing với \(0\text{F}_{16}\) chỉ giữ lại bốn bit thấp nhất.
Tính chẵn lẻ
Liệu số lượng bit 1 trong một giá trị là chẵn hay lẻ. XOR là cơ sở của kiểm tra tính chẵn lẻ: XOR của tất cả các bit bằng 1 cho tính chẵn lẻ lẻ và 0 cho tính chẵn lẻ chẵn.

Câu hỏi thường gặp

Có hỗ trợ số âm không? Không. Đầu vào là các số nguyên không âm, không dấu; công cụ không xử lý dấu theo kiểu bù hai (two's-complement).

Nếu tôi nhập một chữ số không hợp lệ thì sao? Một chữ số nằm ngoài hệ cơ số đã chọn (ví dụ chữ "8" trong hệ bát phân) sẽ bị bỏ qua/coi như bằng 0, vì vậy hãy kiểm tra lại lựa chọn cơ số của bạn.

Tại sao dùng XOR cho checksum? Vì khi XOR một chuỗi byte rồi XOR lại chính chuỗi đó sẽ trả về 0, nên XOR là một cách đơn giản và có thể đảo ngược để phát hiện thay đổi một bit và tính chẵn lẻ.

Cập nhật lần cuối: