这句话啥意思?
int x = 2010;
int y = 2012;
x^=y^=x^=y;
System.out.println("x= " + x + "; y= " + y);
就是x^=y^=x^=y;这句话,谢谢!
int x = 2010;
int y = 2012;
x^=y^=x^=y;
System.out.println("x= " + x + "; y= " + y);
就是x^=y^=x^=y;这句话,谢谢!
a^=b 与 a+=b 用法一样
y = 2012 (11111011100)X^=y^=x^=Y 等价于 X^=(y^=(x^=Y))最后的x^=y 等价于 a = x = x^y = 11111011010 ^ 11111011100 = 00000000110
y^=(x^=y) 等价于 b = y = y^a = 11111011100 ^ 00000000110 = 11111011010 (2010)
x^=(y^=(x^=Y)) 等价于 c = x^b = 11111011010 ^ 11111011010 = 00000000000 (0)
int b = 5;
a+=b+=a+=b;
System.out.println(a + " " + b);
y ^= x;
x ^= y;
a^=b 与 a+=b 用法一样 x = 2010 (11111011010)
y = 2012 (11111011100)X^=y^=x^=Y 等价于 X^=(y^=(x^=Y))最后的x^=y 等价于 a = x = x^y = 11111011010 ^ 11111011100 = 00000000110
y^=(x^=y) 等价于 b = y = y^a = 11111011100 ^ 00000000110 = 11111011010 (2010)
x^=(y^=(x^=Y)) 等价于 c = x^b = 11111011010 ^ 11111011010 = 00000000000 (0)
x^=y^=x^=y;最好不要这么做,理由见 Java Puzzlers要显摆的话最好写成这样:x ^= y;
y ^= x;
x ^= y;