Tôi chỉ muốn thêm một lời giải thích toán học để làm cho câu trả lời đầy đủ hơn. Theo lý thuyết nhóm , XOR là một nhóm abel , còn được gọi là nhóm giao hoán. Nó có nghĩa là nó thỏa mãn năm yêu cầu: Tính kết hợp, Tính liên kết, Tính đồng nhất, Phần tử nghịch đảo, Tính giao hoán.
Công thức hoán đổi XOR:
a = a XOR b
b = a XOR b
a = a XOR b
Mở rộng công thức, thay a, b bằng công thức trước:
a = a XOR b
b = a XOR b = (a XOR b) XOR b
a = a XOR b = (a XOR b) XOR (a XOR b) XOR b
Tính giao hoán có nghĩa là "a XOR b" bằng "b XOR a":
a = a XOR b
b = a XOR b = (a XOR b) XOR b
a = a XOR b = (a XOR b) XOR (a XOR b) XOR b
= (b XOR a) XOR (a XOR b) XOR b
Tính liên kết có nghĩa là "(a XOR b) XOR c" bằng "a XOR (b XOR c)":
a = a XOR b
b = a XOR b = (a XOR b) XOR b
= a XOR (b XOR b)
a = a XOR b = (a XOR b) XOR (a XOR b) XOR b
= (b XOR a) XOR (a XOR b) XOR b
= b XOR (a XOR a) XOR (b XOR b)
Phần tử nghịch đảo trong XOR là chính nó, có nghĩa là bất kỳ giá trị nào XOR với chính nó đều cho bằng không:
a = a XOR b
b = a XOR b = (a XOR b) XOR b
= a XOR (b XOR b)
= a XOR 0
a = a XOR b = (a XOR b) XOR (a XOR b) XOR b
= (b XOR a) XOR (a XOR b) XOR b
= b XOR (a XOR a) XOR (b XOR b)
= b XOR 0 XOR 0
Phần tử nhận dạng trong XOR bằng 0, có nghĩa là bất kỳ giá trị nào XOR bằng 0 đều không thay đổi:
a = a XOR b
b = a XOR b = (a XOR b) XOR b
= a XOR (b XOR b)
= a XOR 0
= a
a = a XOR b = (a XOR b) XOR (a XOR b) XOR b
= (b XOR a) XOR (a XOR b) XOR b
= b XOR (a XOR a) XOR (b XOR b)
= b XOR 0 XOR 0
= b XOR 0
= b
Và bạn có thể lấy thêm thông tin trong lý thuyết nhóm .