^= 关于异或的解释和应用
异或:相同为零,不同为1
如果a、b两个值不相同,则异或结果为1。
如果a、b两个值相同,异或结果为0。
应用直接的场景
我们使用一个a、b互换值,来证明下异或运算符
<?php $a = 14; $b = 15; $a ^= $b; $b ^= $a; $a ^= $b; echo $a,' ',$b,"\n"; return;
结果:
15 14
我们分析下异或的过程:
a 1110 b 1111 a ^= b // a为 a和b相差的值,b没变 a 0001 b 1111 b ^= a // 根据相差的值算出 原来的a,赋值给b b 1110 a 0001 a ^= b // 根据相差的值算出 原来的b,赋值给a a 1111 b 1110
过程就是这样清晰点没,在捋捋就好了。