Java中的异或
来源:互联网 发布:广告联盟挂机软件 编辑:程序博客网 时间:2024/05/22 16:54
在java程序里面的异或用法:
相同输出0,不同输出1,例如:
System.out.println(1^1); 输出0
System.out.println(1^2);输出3,因为最后2个低位都不一样,所有输出3
异域的概念是相同为0不同为1.如果两个数值异或后的值相同,异或前可能不同。
比如二进制:0010^0001=0011 而0000^0011=0011。 异或要慎用。
一道有意思的题目:很多成对出现数字保存在磁盘文件中,注意成对的数字不一定是相邻的,如2, 5,3, 4, 7,3, 4, 2,5……,由于意外有一个数字消失了,如何尽快的找到是哪个数字消失了?
相同输出0,不同输出1,例如:
System.out.println(1^1); 输出0
System.out.println(1^2);输出3,因为最后2个低位都不一样,所有输出3
异域的概念是相同为0不同为1.如果两个数值异或后的值相同,异或前可能不同。
比如二进制:0010^0001=0011 而0000^0011=0011。 异或要慎用。
一道有意思的题目:很多成对出现数字保存在磁盘文件中,注意成对的数字不一定是相邻的,如2, 5,3, 4, 7,3, 4, 2,5……,由于意外有一个数字消失了,如何尽快的找到是哪个数字消失了?
由于有一个数字消失了,那必定有一个数只出现一次而且其它数字都出现了偶数次。用搜索来做就没必要了,利用异或运算的两个特性——
1.自己与自己异或结果为0,
2.异或满足 交换律。
public class Test {public static void main(String[] args) {System.out.println("^:" + (3^3) );int[] arr = {2,4,6,5,8,2,5,6,4};System.out.println("lost:" + findLost(arr));}public static int findLost(int a[]){ int result=0; for(int i=0;i<a.length;i++) { result^=a[i]; } return result; } }输出结果:
^:0lost:8
0 0
- Java中的异或
- java中的异或
- Java中的异或操作
- java中的异或问题
- java中的异或非运算
- 【Java】Java中的位运算符与、或、非、异或的使用
- java按位运算符中的异或
- Java中的位运算(移位、位与、或、异或、非)
- java中的|与||,&与&&的区别,与、或,非、异或、位运算
- Java中的按位与(&)、按位或(|)、异或(^)等运算符
- Java中的位运算,包括移位、位与、或、异或、非
- Android或Java中的四舍五入的方法
- JAVA连接oracle中的表或视图
- java 异或加密
- Java异或校验
- 异或问题(java)
- C语言中的|、||、&、&&、异或、~、!
- C++ 中的异或操作^
- NEFU OJ26 计算阶乘位数
- 当函数重载遇到函数指针
- ssh框架下checkbox翻页选中问题
- [hackerrank]Fibonacci Modified
- mysql学习总结(三)---SQL 模糊查询(一)
- Java中的异或
- 解决在AS中使用Genymotion时发生error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:
- PHP百钱买百鸡算法(穷举算法)
- 常用加密算法介绍--DES3
- iOS开发环境xcode搭建
- You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
- 为Android图片加载添加百分比进度条(Picasso+Okhttp3)
- Android 透明 activity
- 机器学习 ~~ 梯度下降