异或是个神奇的运算
最近碰到了许多无从下手的题,看了题解之后,使用异或的新颖解法让我茅塞顿开,现在打算总结一下。
$tips:$本文用 $1$ 表示真, $0$ 表示假, ^ 表示异或, $¬$ 表示非, $∧$ 表示与, $∨$ 表示或。
运算法则
逻辑表示:
$a$ ^ $b=(¬$ $a∧b)∨(a∧¬$ $b) $
二进制表示:
$0$ ^ $0=0$
$0$ ^ $1=1$
$1$ ^ $0=1$
$1$ ^ $1=0$
文字表示:
如果 $a、b$ 两个值不相同,则异或结果为 $1$ 。如果 $a、b$ 两个值相同,异或结果为 $0$ 。
性质
交换律
$a$ ^ $b=b$ ^ $a$
结合律
$a$ ^ $b$ ^ $c=a$ ^ $(b$ ^ $c) = (a$ ^ $b)$ ^ $c$
分配律
$a$ ^ $(b+c) = (a$ ^ $b)+(a$ ^ $c)$
自反性
$a$ ^ $b$ ^ $b=a$
对于任何数,都有
$a$ ^ $a=0$
$a$ ^ $0=a$
巧用
交换两个数 $a、b$
$a=a$ ^ $b$
$b=a$ ^ $b$
$a=a$ ^ $b$
判断两个数 $a、b$ 是否相等
若 $a$ ^ $b=0$ 则相等