int x=1,y=2,z=3; x=x^z; y=y^z; z=x^y; cout

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 07:34:25
int x=1,y=2,z=3; x=x^z; y=y^z; z=x^y; cout
xOPB mI}M`Yۧ6W'nl%ČTgza-˽sm\OF S`!W!bBd,'F=/SSՕPA\gg mΑcq'm{߃Ik~;j.އ+y{LGF785!ҼSW D7dtuރ(w\I bX:}wVt3I;!k{=~Wqfg#i˂*M++b*'*t+iS #"9T,\F,2FfԳ* 3!K6f)q|cFx+( ͤ3 NUl &

int x=1,y=2,z=3; x=x^z; y=y^z; z=x^y; cout
int x=1,y=2,z=3; x=x^z; y=y^z; z=x^y; cout

int x=1,y=2,z=3; x=x^z; y=y^z; z=x^y; cout

因为^是异或运算符,所以要按位异或,将1,2,3分别转换成二进制数是:00000001,00000010,00000011.

x=x^z,即00000001^00000011,对应位置上数字不同则为一,相同则为零,因为x与z只有右数第二位不同,所以只有那一位为1,所以结果是00000010.而且此时结果赋值给x,使得x的值变为2.

y=y^z即00000010^00000011,可见二者最后一位一个是0一个是1,所以结果是00000001,再将值赋给y,则y值为1.

z=x^y即00000010^00000001,最后两位都不同,所以结果为00000011,并且将之赋给z,则z值为3.

最后cout,连续输出xyz,所以是213