[java学习]移位运算交换两数的值的出错情况

移位运算,交换两数的值

  
  
  
  
  1. int a=10;
  2. int b=52;
  3. System.err.println("开始:"+a+","+b);
  4. a=a^b;
  5. b=a^b;
  6. a=a^b;
  7. System.err.println("结束:"+a+","+b);

结果是:

开始:10,52
结束:52,10

什么时候会出错呢?

当两个数都是自己时,将会计算出错,结果都会是0.

  
  
  
  
  1. int a=10;
  2. //int b=52;
  3. System.err.println("开始:"+a+","+a);
  4. a=a^a;
  5. a=a^a;
  6. a=a^a;
  7. System.err.println("结束:"+a+","+a);

结果是:

 开始:10,10
 结束:0,0


来自为知笔记(Wiz)


你可能感兴趣的:([java学习]移位运算交换两数的值的出错情况)