可参考一道ctf题:https://blog.csdn.net/weixin_43900387/article/details/104385130

 

python异或运算用^表示:

大致原理是:讲数字转为二进制然后,每个位上进行运算

0^0=0,1^0=1,0^1=1,1^1=0

如 :

9的二进制:1001   5的二进制:101

竖式计算: 

                     9:   1001
                     5:   0101
    抑或结果:12:  1100--->得到二进制数,十进制为12

然后有个很好玩的规律,ctf题中遇到了

假设有两个数x,y

那么x^y^y=x本身

原因就拿二进制解释:

1^1^1=1 , 0^0^0=0

1^0^0=1 , 0^1^1=0

每一位上的数都是如此对应,所以二进制整体也就保持不变

A xor B xor B = A xor (B xor B) = A xor 0 = A 也可验证结论成立

说明异或运算是可逆求的,也就解决了那个题