黑马程序员技术交流社区
标题:
关于异或换值、变量交换。
[打印本页]
作者:
王杨武
时间:
2012-8-29 09:36
标题:
关于异或换值、变量交换。
刚才看见大家用异或。来调换值。请大家帮忙解释一下。这个异或是什么概念?和它怎么用都有什么好处呢?
异或交换:
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);
}
谢谢大家解释下!
作者:
许庭洲
时间:
2012-8-29 09:52
1. 异或(^)是一个数学运算符。它应用于逻辑运算;
2. 在计算机中的 数值逻辑运算,需要将数值转换为二进制数进行运算,其中一个字节占八位,那么两个字节按位异或如下
00000000
^ 00000000
——————————
00000000
11111111
^ 00000000
——————————
11111111
00000000
^ 11111111
——————————
11111111
11111111
^ 11111111
——————————
00000000
00001111
^ 11111111
——————————
11110000
作者:
黑马王建伟
时间:
2012-8-29 10:10
异或是位运算符,简单说就是相同为0,相异为1,楼上已经做了很好的解释
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2