我是靠谱客的博主 忧心人生,最近开发中收集的这篇文章主要介绍java 异或 排序_Java中的异或(转),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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, 3, 4, 3, 4, 2……,由于意外有一个数字消失了,如何尽快的找到是哪个数字消失了?

由于有一个数字消失了,那必定有一个数只出现一次而且其它数字都出现了偶数次。用搜索来做就没必要了,利用异或运算的两个特性——1.自己与自己异或结果为0,2.异或满足

交换律。

public static int findLost(int a[]){

int result=0;

for(int i=0;i

result^=a[i];

}

return result;

}

顺序打乱也没有关系。

转自:http://longcxm.iteye.com/blog/1461543

最后

以上就是忧心人生为你收集整理的java 异或 排序_Java中的异或(转)的全部内容,希望文章能够帮你解决java 异或 排序_Java中的异或(转)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部