可参考一道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 也可验证结论成立 说明异或运算是可逆求的,也就解决了那个题