Java中a=5;b=10;b=a^b; a=b^a; System.out.println("b="+b);为什么输出b=15?

2024-11-06 10:38:09
推荐回答(3个)
回答1:

如果你会二进制运算的话就明白了:
a = 101 b= 1010
那么b = a ^ b ;

根据^的运算规则,相同则结果为0,不同则结果为1
此时b = 1111
a = b ^ a //这步并不影响b的值。
所以b的十进制为15

回答2:

执行
b=a^b
的时候改变了b的值啊

回答3:

a = 00000101
b = 00001010
b = 00001111
00000101
a = 00001010

^异或的意思是 相同位不同则为1,相同则为0。
所以最后的结果b = 00001111 = 15,a=10