$\newcommand\xor{\mathbin{\mathrm{xor}}}$
$\newcommand\and{\mathbin{\mathrm{and}}}$
$\newcommand\bitnot{\mathrm{not}\thinspace}$
我比较弱看了半天范爷的算法都没太懂……我来讲点奇怪的算法……感觉本质上跟范爷的算法是一样的。
考虑两个布尔变量 $a, b$ 的异或: $a \xor b$。看起来就让人浑身难受,所以我们用 $1$ 表示布尔值 $0$,用 $-1$ 表示布尔值 $1$。也就是用 $(-1)^x$ 代替原来的布尔变量 $x$,这样 $a \xor b = ab$ 了,即 $a$ 和 $b$ 相乘。