首先我们现在应该弄明白电脑中的数据是以二进制方式运行的,我们今天就来先讲一讲
1.按位与 2.按位或 3.按位异或 4.按位取反 这四种概念
第一,首先是按位与
第二
第三
最后
其中,我们这里用到的知识点就是按位异或,见图三,两个二进制的数字,按位异或,相同的是0,不同的是1,那么如果两个相同的数按位异或,他的结果是什么呢?
答案就是0;因为两个相同的数,他们的二进制都是一样的,按位异或后,二进制全部变成了0,而0与任何数异或都是它本身,比如3与0异或答案就是3。
先上代码
int a=10;
int b=20;
a=a^b;
b=b^a;
a=a^b;
System.out.println(a);//a=20
System.out.println(b);//b=10
解释:
一开始a=10;第一步a=a^b; b=b^a;-> 这个a就等于a^b;所以b=b^b^a;//现在b的值就是a了;
下一步a=a^b;b=b^a;所以,a=a^a^b;这样就完成了交换了。是不是很神奇!