在深入理解计算机系统第二章练习题2.13,文中提到用bis(x,m)位设置函数与bic(x,m)位清除函数表示或'|'与异或"^".
假如x^y;如何用&,|,~表示出异或呢,
公式如下:
x^y=(x&~y)|(y&~x)
很多朋友初次看,都是死记硬背,或者查阅百度,但是百度大师似乎没有答案,
接下来对此进行定性推理,
推导过程如下:
1首先理解(x&~y); x :11001 y:10010 x^y=01011
x:11001 ~y:01101 x&(~y)=01001
(~y)对y以前为0的数字变为1;然后与x与运算,那么就可以得出x为1位置上,x与y不同值时置为1,
同理,(y&~x)得出y为1位置时,x与y位置不同时,将其置为1.
最后将两个结果做或运算,便得到异或运算.