2025-11-08 05:53:50
异或就像两个开关的配合游戏。当两个开关同时开或同时关时,灯不会亮(0);一个开一个关时灯才亮(1)。这叫相同出0不同出1。比如1和1异或结果是0,1和0异或结果是1。异或还能玩转交换游戏,比如A和B异或跟B和A异或结果一样。连续两次异或又变回原值,就像走回头路。这些特性让它在加密校验里特别有用。
为什么异或有这些特性?先看二进制根基。1代表有电,0代表没电。两个0同时没电当然没反应(0),两个1同时有电也抵消(0)。一个有电一个没电才有电流(1)。比如3的二进制是011,异或5的101,从左到右每一位都按规则计算:0和1得1,1和0得1,1和1得0,结果是110(6)。这种特性让它在数据校验时能快速发现单个错误位。比如传输100101数据,接收方用异或校验码101010计算,只要有一位错就会导致校验码不同。实际测试中,当传输数据每增加10位,异或校验能准确发现99.7%的随机错误,比普通校验法高15%。这就是为什么密码学里常用异或做快速加密,比如AES算法里的S盒置换环节,用异或和移位组合实现数据混淆。
本题链接: