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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    int a = 3,b = 5;

        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
看不明白,求解释;

4 个回复

倒序浏览
^:表示异或,两个二进制数相比,同是1或同是0则,结果为0,如11^11=00;
        相异则为1,如10^01=11,
        10
        01
---------
        11

a=3=011,b=5=101,

a = a ^ b; =====》011
                                   101
                                 ------
                                   110 = 6


b = a ^ b;======》110
                                   101
                                  -----
                                   011 = 3


a = a ^ b; ======》110
                                   011
                                  -----
                                   101 = 5
回复 使用道具 举报
int a = 3,b = 5;

        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
一个数位异或(^)另一个数两次,结果还是它本身,如2^5^5=2
a = a ^ b;
b = a ^ b = a ^ b ^b =a = 3(把上面的式子a = a ^ b代入);
a = a ^ b = a ^ b ^ a = b =5;(把上面的式子结果a = a^b,   b = a 代入);
回复 使用道具 举报
谢谢各位前辈,分析的很清晰,一看就明白了;
回复 使用道具 举报
我也看不明白
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马