Kết nối qua MCP →

Nhập phép tính

Công thức

Quảng cáo

Kết quả

XOR theo bit (A ^ B)
12
thập phân
Nhị phân A 1010
Nhị phân B 110
XOR nhị phân 1100
XOR thập lục phân 0xC

Máy Tính XOR Theo Bit là gì?

Máy tính XOR theo bit (exclusive OR — hoặc loại trừ) nhận vào hai số nguyên và kết hợp chúng theo từng bit. Tại mỗi vị trí bit, kết quả là 1 khi hai bit đầu vào khác nhau, và 0 khi chúng giống nhau. Đây là một trong những phép toán cơ bản nhất trong lập trình, logic số, mật mã học và phát hiện lỗi.

Cách sử dụng

Nhập số nguyên thứ nhất (A) và số nguyên thứ hai (B), sau đó bấm tính. Công cụ sẽ trả về kết quả XOR ở dạng thập phân, kèm theo biểu diễn nhị phân và thập lục phân để bạn có thể kiểm tra lại từng bit một. Cả số nguyên dương lẫn số nguyên âm đều được chấp nhận.

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

Trong hầu hết các ngôn ngữ lập trình, XOR được viết là A ^ B, còn trong ký hiệu toán học là A ⊕ B. Công thức tổng quát:

$$\text{Result} = \text{A} \oplus \text{B}$$

Bảng chân trị cho một bit đơn lẻ là: \(0 \oplus 0 = 0\), \(0 \oplus 1 = 1\), \(1 \oplus 0 = 1\), \(1 \oplus 1 = 0\). Phép toán được áp dụng độc lập cho từng cặp bit. Một tính chất hữu ích: \(A \oplus A = 0\) và \(A \oplus 0 = A\), đây chính là lý do XOR thường được dùng để hoán đổi giá trị và bật/tắt các cờ (flag).

Bảng chân trị XOR cho thấy 0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1, 1 XOR 1 = 0
XOR cho kết quả 1 chỉ khi hai bit đầu vào khác nhau.

Ví dụ minh họa

Lấy A = 12 và B = 10. Ở dạng nhị phân, 12 = 1100 và 10 = 1010. So sánh từng cột: \(1 \oplus 1 = 0\), \(1 \oplus 0 = 1\), \(0 \oplus 1 = 1\), \(0 \oplus 0 = 0\), cho ra 0110 = 6. Vậy:

$$12 \oplus 10 = 6$$
Hai số nhị phân xếp chồng với mỗi cột bit được kết hợp bằng XOR tạo ra hàng kết quả
XOR được áp dụng độc lập cho từng vị trí bit thẳng hàng.

So sánh các phép toán Bitwise

Mỗi phép toán bitwise hoạt động từng bit một lần. Đối với mỗi cặp bit đầu vào \(A\) và \(B\), phép toán tạo ra một bit đầu ra duy nhất. Bảng dưới đây cho thấy bảng chân trị đơn bit hoàn chỉnh cho sáu phép toán phổ biến nhất. XOR (OR loại trừ, viết \(A \oplus B\)) chỉ xuất ra 1 khi hai bit đầu vào khác nhau.

A B AND (A&B) OR (A|B) XOR (A^B) NAND ~(A&B) NOR ~(A|B) XNOR ~(A^B)
0 0 0 0 0 1 1 1
0 1 0 1 1 1 0 0
1 0 0 1 1 1 0 0
1 1 1 1 0 0 0 1

Lưu ý rằng XOR là phần bổ sung chính xác của XNOR, và XOR bằng 1 trong chính xác hai hàng nơi các đầu vào không đồng ý. Tính chất "bộ phát hiện sự khác biệt" này là những gì làm cho XOR hữu ích cho các kiểm tra chẵn lẻ, mã hóa đơn giản và chuyển đổi bit.

XOR trên các cặp đầu vào phổ biến

Bảng sau đây xử lý các cặp đại diện thông qua phép toán XOR bitwise, hiển thị từng toán hạng ở dạng nhị phân, sau đó kết quả ở dạng thập phân, nhị phân và thập lục phân. XOR được thực hiện từng bit: căn chỉnh hai số nhị phân và xuất ra 1 ở bất cứ đâu mà các bit khác nhau.

A B A (nhị phân) B (nhị phân) A ^ B (thập phân) A ^ B (nhị phân) A ^ B (thập lục phân)
5 3 0101 0011 6 0110 0x6
255 15 11111111 00001111 240 11110000 0xF0
12 12 1100 1100 0 0000 0x0
7 0 0111 0000 7 0111 0x7
10 6 1010 0110 12 1100 0xC
-1 1 …11111111 …00000001 -2 …11111110 0x…FE

Hai mẫu nổi bật. Khi toán hạng là 0, XOR trả về toán hạng khác không thay đổi (\(7 \oplus 0 = 7\)). Khi cả hai toán hạng giống hệt nhau, XOR trả về 0 (\(12 \oplus 12 = 0\)). Ví dụ âm sử dụng biểu diễn phần bù của hai: \(-1\) là tất cả các bit 1, vì vậy XOR nó với bất kỳ giá trị nào đảo chiều mỗi bit (điều này tương đương với NOT bitwise), cho \(-1 \oplus 1 = -2\).

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

XOR nghĩa là gì? Exclusive OR (hoặc loại trừ) — chỉ đúng khi đúng một trong hai đầu vào là đúng (bằng 1).

Vì sao XOR được dùng trong mật mã học? Vì việc XOR dữ liệu với một khóa có thể đảo ngược: áp dụng lại đúng khóa đó sẽ khôi phục dữ liệu ban đầu (\(A \oplus K \oplus K = A\)).

Công cụ có xử lý được số âm không? Có. Giá trị âm được biểu diễn theo dạng bù hai (two's complement), nên phần hiển thị nhị phân của số âm có thể gồm rất nhiều bit.

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