Java中的位运算符中有一个叫做异或的运算符,符号为(^)或许 Xor
异或8个字总结 雷同出0 差别出1
int a=1; int b=1; System.out.println(a^b);
这里则输出 0
int a=12; int b=0; System.out.println(a^b);
这里则输出 12
小结: 雷同的两个数会输出0既false ,另一个数为0 则输出它自身,下面为人人演示两个差别的数字
相干视频教程引荐:java在线教程
运算划定规矩
其运算划定规矩是:在两个二进制操纵数的雷同位中
如:a=7; b=4;
a=0111; b=0100; (由于int是占有32位的,前面的位数都为0 ,所只展现后4位)
a^b=?
得出 a^b =3
下面为人人细致解说在不运用第三方的情况下交流两个属性中的值
我们要完成的是a=4; b=7;
公式为 a=a^b;
b=a^b;
a=a^b;
第一步剖析:
第一步完毕后值为: a=3; b=7;
第二步:b=a^b;
第二步完毕后的值:a=3; b=4;
第三步:a=a^b;
第三步完毕后的值:a=7; b=4;
异或运算有三个特性,一个是0与一个数做异或操纵照样自身,自身与自身做异或操纵为0,异或操纵还满足交流率。
应用a^a=0的特性完成这个功用,在一个数组中找出涌现次数为奇数的,也可明白为涌现一次的;
这里直接上代码;
private static void ddd() { int a[] = { 22, 38, 38,5, 22, 4, 4, 11, 11 }; int t = 0; for (int i = 0; i < a.length; i++) { t ^= a[i]; } System.out.println(t); }
这里将会直接输出 5
下面是一些异或的基本知识,有兴致的可研究一下;
1. a ^ b = b ^ a
2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
3. d = a ^ b ^ c 能够推出 a = d ^ b ^ c.
4. a ^ b ^ a = b.
更多相干文章教程引荐:java入门进修
以上就是深切明白java中的异或运算符的细致内容,更多请关注ki4网别的相干文章!