首先,&符号使各位同为1的变为1,其余全为0,~符号使各位1变0,0变1,^符号使各位相同的变为0,不同的变为1,也可视为二进制下的无进位相加。
用&和~,求x^y;
这时注意到,xy&可以使相同的1保留,若~x&~y可以使相同的0保留,此时可知x,y中所有相同位数,只需把这些位数变为0,再把剩余位数变为1,即达到^效果。
这时怎么把两者结合呢,在不用|符号下,只用&和~,这时注意到,对x&y取~,即~(x&y)使x,y中不同为1的位变为1,同为1的位变为0。而在~(~x&~y)中,同为0的位变为0,其余变为1。这时注意到,~(x&y)&~(~x&~y)保留下不同为0或同为1的数,即达到^的效果了。