关于抑或运算

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

python异或运算用^表示:

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

00=0,10=1,01=1,11=0

如 :

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

竖式计算:

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

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

假设有两个数x,y

那么xyy=x本身

原因就拿二进制解释:

111=1 , 000=0

100=1 , 011=0

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

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

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

posted @ 2020-03-22 22:59  何止(h3zh1)  阅读(437)  评论(0编辑  收藏  举报