A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

交换两个变量的值,最有常用的方法就是使用临时变量了
   例:
        int  temp=a;
        a=b;
        b=temp;

这种是最常见的:
      但还有另一种方法:
                          就是异或运算:
                                 a=a^b;
                                 b=a^b;
                                 a=a^b;
这才是我要讲的:
              我是用代入法的思想来理解它:
                                      b=a^b用代入法则是    b=a^b^b
                                       根据异或规则,一个数据被同一个数据异或两次则返回原值
                                      因此这里返回的是a,等价于b=a;
                                      
                                      第二个 a=a^b;用代入法后的原始公式是    a=(a^b)^(a^b^b)
                                                                              计算后的公式    a=a^b^a
                                       因此这里返回的是b
                                       
                                       到此交换就完成了,OK

2 个回复

倒序浏览
讲的不错
回复 使用道具 举报
一个数据被同一个数据异或两次则返回原值,你这只是一个结论,要解释一下的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马