或许对于像我现在这样的初学者很多都没见过这个符号 ^
这个是个异或运算的符号,好的,我们现在开始分析它的运行原理!
异或运算的知识请点击此连接后了解
http://baike.baidu.com/view/1452266.htm
将i和j的初始值给2进制化后
分别为
10 -- 0
5 -- 1
2 -- 0
110的二进制就为1010
-----------------------------
5 -- 1
2 -- 0
1
5的二进制就为 101
第一步:
i=i^j;
好了,我们将2个数都转换成了二进制后
在把他们异或运算下
1010
0101 --- 补0
1111 --- 或运算的结果
再把二进制的1111转换成十进制的
1*2^3+1*2^2+1*2^1+1*2^0
8+4+2+1=15
现在的i的值就等于15了
第二步:
j=i^j;
1111
0101
1010
再把二进制的1010转换成十进制的
1*2^3+0*2^2+1*2^1+0*2^0
8+0+2+0=10
现在j的值就等于10了
第三步:
i=i^j;
1111
1010
0101
现在i的值就等于5了
最后就成功的将i和j的值给交换了!
时间: 2024-11-06 09:31:20