A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王杨武 中级黑马   /  2012-8-29 09:36  /  2594 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚才看见大家用异或。来调换值。请大家帮忙解释一下。这个异或是什么概念?和它怎么用都有什么好处呢?
异或交换:
public static void yihuo(int a,int b){
  a=a^b;//把a与b的异或值赋给a;
  b=a^b;//相当于a^b^b;也就是把a值赋值给b;
  a=a^b;//相当于a^a^b;也就是把b值赋值给a;
  System.out.println("a="+a+",b="+b);
}
temp交换:
public static void temp(int a,int b){
  int temp=b;
  b=a;
  a=temp;
  System.out.println("a="+a+",b="+b);
}
谢谢大家解释下!

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

2 个回复

倒序浏览
1. 异或(^)是一个数学运算符。它应用于逻辑运算;
2. 在计算机中的 数值逻辑运算,需要将数值转换为二进制数进行运算,其中一个字节占八位,那么两个字节按位异或如下
     00000000   
^        00000000
——————————   
       00000000            

     11111111   
^        00000000
——————————   
      11111111


      00000000   
^    11111111   
——————————   
      11111111
    
           11111111   
^    11111111   
——————————    
      00000000
  

           00001111   
^        11111111  
——————————  
      11110000
回复 使用道具 举报
异或是位运算符,简单说就是相同为0,相异为1,楼上已经做了很好的解释
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马