请先理解这篇csdn的文章。 使用异或运算实现二数交换_无关风月-CSDN博客_使用异或实现二数交换
异或^ :相同0; 区别是1;
相对于b=a^b^a; //我总是比较不理解。 之后,通过b/a*a,我想a是不是把a从约定中排除了,所以理解并试着证明了。
相同情况下,结果为0;
a^b^a交换位置a^a^b,a^a得到0。
首先,在值2为0的异或过程中查看表
发现值1异或值2结果1 ̄010 ̄00值2为0时,结构体保存值1。 也就是说,a^b^a的时候,a实际上是“和取消约定一样”。 看看值为2是1的时候。 值1异或值2结果1^100^11其他:代码实现#includestdio.hintmain({inta,b; scanf('%d、%d )、a、b ); a=a^b; b=a^b; a=a^b; printf(a=%d,b=%d ),a,b ); 返回0; }执行结果: