本帖最后由 miedongdong 于 2013-10-30 22:55 编辑
没说过这个会有bug吧
这个也可以用位运算符之中的异或运算 ^
^的原理说明:(实际上是二进制运算)
相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
例子:6^5
6 的二进制表示: 110
5的二进制表示: ^101
————
011
下面的实现原理就是异或运算后再异或同一个数
异或运算后的数 011
5的二进制表示: ^ 101
————
110 (这就是6的二进制数)
02.public class Xiaohuihui {
03. public static void main(String[] args) {
04. int a = Integer.MAX_VALUE;
05. int b = 12;
a =a ^ b;
b= a^b;
a= a^b;
06. /* a = a + b;
07. b = a - b;
08. a = a - b; */
09. System.out.println(Integer.MAX_VALUE);
10. System.out.println(a);
11. System.out.println(b);
12. }
13.}
|