ฟังก์ชันผกผันของ XOR คืออะไร?


95

มีฟังก์ชัน XOR ใน Java - a^b

สำหรับตัวอย่าง: 5^3 = 6

คุณบอกฉันได้ไหมว่าฟังก์ชันผกผัน ถ้าฉันมี6และ3ฉันจะได้รับช่วงของตัวเลขซึ่งรวมถึงตัวเลขได้5หรือไม่?

คำตอบ:


204

ผกผันคือ XOR!

ถ้าคุณมี:

c = a^b;

คุณสามารถรับaหรือbคืนได้หากคุณมีค่าอื่นที่มีอยู่:

a = c^b; // or b^c (order is not important)
b = c^a; // or a^c

ตัวอย่างเช่นถ้าa = 5, b = 3(และc = 6ตามที่คุณกล่าวถึง) คุณจะได้รับ:

b=0011 (3)            a=0101 (5)
c=0110 (6) XOR   or   c=0110 (6) XOR
----------            ----------
a=0101 (5)            b=0011 (3)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.