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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 06:52:25
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

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