Java中的异或运算符^

写这篇真的有点难过,这么基础的东西,也忘记了,很怀疑工作的这两年都在干嘛,是不是路走错了。
最近开始看一些算法,其中有这么一段

    @Test
    public void test2() {
       int a=2;
       int b=3;
       a=a^b;
       b=a^b;
       a=a^b;
       System.out.println("a="+a+",b="+b);
    }

^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.
一个数(a)与异或的结果(a^b),再异或一次,就会得到另一个数(b);
上面的代码( a=a^b; b=a^b; a=a^b;)可以直白的写成这样。
int c=a^b ; ———— 01=10^11
b=c^b; ———— 10=01^11
a=c^a; ————-11=01^10

猜你喜欢

转载自blog.csdn.net/lkpklpk/article/details/81287115
今日推荐