我是靠谱客的博主 糊涂台灯,最近开发中收集的这篇文章主要介绍异或性质,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

异或运算

相同结果是0,不同结果是1

性质

1.a^b = b^a

2.(a^b)^c = a^(b^c)

3.a^a = 0; a^0 = a;

4.a^b^b = a^0=a;

 

问题1.找一个只出现一次,其余都出现两次的数。

根据性质3,将所有数做与运算

 

问题2.找一个出现奇数次,其余出现偶数次的数。

和问题1一样

 

问题3.给定数字集合在1-1000之间的1001个数,找一个出现两次,其余都出现1次的数。

1^2^...^1000=T

1^2^...^1001=X

假设n只出现两次

T^X=1^1^2^2...^n^n^n...^1000^1000=n^0=n

 

问题4.找出有两个不同的数只出现一次,其余都是出现两次

将所有数做异或,结果得到a^b的结果x。

找到x哪一位为1,根据异或定义,也就是说这一位,a,b中一定一个是1一个是0。

按照这一位对原数组进行划分,然后就和问题1一样了。

 

问题5..数组a[n]里存有1到n的所有树,除了一个数removed,找出这个missing的树

 missing = a[0]^a[1]...^a[n-1]^1^2^...^n;

转载于:https://www.cnblogs.com/23lalala/archive/2012/09/28/2706655.html

最后

以上就是糊涂台灯为你收集整理的异或性质的全部内容,希望文章能够帮你解决异或性质所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部