做网站图片知识,网页相册制作,营销型网站设计房地产,如何查看网站空间商异或是一种基于二进制的位运算#xff0c;用符号XOR或者 ^ 表示#xff0c;其运算法则是对运算符两侧数的每一个二进制位#xff0c;同值取0#xff0c;异值取1。它与布尔运算的区别在于#xff0c;当运算符两侧均为1时#xff0c;布尔运算的结果为1#xff0c;异或运算…异或是一种基于二进制的位运算用符号XOR或者 ^ 表示其运算法则是对运算符两侧数的每一个二进制位同值取0异值取1。它与布尔运算的区别在于当运算符两侧均为1时布尔运算的结果为1异或运算的结果为0。 简单理解就是不进位加法如110,000,101。 性质 1、交换律 2、结合律即(a^b)^c a^(b^c) 3、对于任何数x都有x^x0x^0x 4、自反性 A XOR B XOR B A xor 0 A 异或运算最常见于多项式除法不过它最重要的性质还是自反性A XOR B XOR B A即对给定的数A用同样的运算因子B作两次异或运算后仍得到A本身。这是一个神奇的性质利用这个性质可以获得许多有趣的应用。 例如所有的程序教科书都会向初学者指出要交换两个变量的值必须要引入一个中间变量。但如果使用异或就可以节约一个变量的存储空间 设有A,B两个变量存储的值分别为ab则以下三行表达式将互换他们的值 表达式 值 AA XOR B (a XOR b) BB XOR A (b XOR a XOR b a) AA XOR B (a XOR b XOR a b) 类似地该运算还可以应用在加密数据传输校验等等许多领域。 运用距离 1-1000放在含有1001个元素的数组中只有唯一的一个元素值重复其它均只出现 一次。每个数组元素只能访问一次设计一个算法将它找出来不用辅助存储空 间能否设计一个算法实现 解法一、显然已经有人提出了一个比较精彩的解法将所有数加起来减去12...1000的和。 这个算法已经足够完美了相信出题者的标准答案也就是这个算法唯一的问题是如果数列过大则可能会导致溢出。 解法二、异或就没有这个问题并且性能更好。 将所有的数全部异或得到的结果与1^2^3^...^1000的结果进行异或得到的结果就是重复数。 但是这个算法虽然很简单但证明起来并不是一件容易的事情。这与异或运算的几个特性有关系。 首先是异或运算满足交换律、结合律。 所以1^2^...^n^...^n^...^1000无论这两个n出现在什么位置都可以转换成为1^2^...^1000^(n^n)的形式。 其次对于任何数x都有x^x0x^0x。 所以1^2^...^n^...^n^...^1000 1^2^...^1000^(n^n) 1^2^...^1000^0 1^2^...^1000即序列中除了n的所有数的异或。 令1^2^...^1000序列中不包含n的结果为T 则1^2^...^1000序列中包含n的结果就是T^n。 T^(T^n)n。 所以将所有的数全部异或得到的结果与1^2^3^...^1000的结果进行异或得到的结果就是重复数。 当然有人会说12...1000的结果有高斯定律可以快速计算但实际上1^2^...^1000的结果也是有规律的算法比高斯定律还该简单的多。 google面试题的变形一个数组存放若干整数一个数出现奇数次其余数均出现偶数次找出这个出现奇数次的数 解法有很多但是最好的和上面一样就是把所有数异或最后结构就是要找的原理同上 转载自http://longzxr.i.sohu.com/blog/view/190676432.htm 奇数个异或是本身偶数个是00^aa异或有交换律 参与运算的两个值如果两个相应bit位相同则结果为0否则为1。 即 0^0 0 1^0 1 0^1 1 1^1 0 例如10100001^0001000110110000 按位异或的3个特点: (1) 0^00,0^11 0异或任何数任何数 (2) 1^01,1^10 1异或任何数任何数取反 (3) 任何数异或自己把自己置0 按位异或的几个常见用途: (1) 使某些特定的位翻转 例如对数10100001的第2位和第3位翻转则可以将该数与00000110进行按位异或运算。 10100001^00000110 10100111 (2) 实现两个值的交换而不必使用临时变量。 例如交换两个整数a10100001b00000110的值可通过下列语句实现 a a^b //a10100111 b b^a //b10100001 a a^b //a00000110 两个变量交换值的方法【http://blog.sina.com.cn/s/blog_676015470100izpg.html】 第一种方法大家会借助第三个变量来实现 如CA;AB;BC; 这种方法需要借助第三变量来实现 第二种方法是利用加减法实现两个变量的交换 如AAB;BA-B;AA-B; 第三种方法是得用位异或运算来实现也是效率最高的一种在大量数据交换的时候效率明显优于前两种方法 如AA^B;BA^B;AA^B; 原理利用一个数异或本身等于和异或运算符合交换率。 PS:还有一篇更为深刻的文章对换值进行了探讨作者的研究精神值得学习 http://rednaxelafx.javaeye.com/blog/134002 / (3) 在汇编语言中经常用于将变量置零 xor aa (4) 快速判断两个值是否相等 举例1: 判断两个整数ab是否相等则可通过下列语句实现 return ((a ^ b) 0) 举例2: Linux中最初的ipv6_addr_equal()函数的实现如下: static inline int ipv6_addr_equal(const struct in6_addr *a1, const struct in6_addr *a2) { return (a1-s6_addr32[0] a2-s6_addr32[0] a1-s6_addr32[1] a2-s6_addr32[1] a1-s6_addr32[2] a2-s6_addr32[2] a1-s6_addr32[3] a2-s6_addr32[3]); } 可以利用按位异或实现快速比较, 最新的实现已经修改为: static inline int ipv6_addr_equal(const struct in6_addr *a1, const struct in6_addr *a2) { return (((a1-s6_addr32[0] ^ a2-s6_addr32[0]) | (a1-s6_addr32[1] ^ a2-s6_addr32[1]) | (a1-s6_addr32[2] ^ a2-s6_addr32[2]) | (a1-s6_addr32[3] ^ a2-s6_addr32[3])) 0); } 文章转载自: http://www.morning.bpmdn.cn.gov.cn.bpmdn.cn http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.fhddr.cn.gov.cn.fhddr.cn http://www.morning.wncb.cn.gov.cn.wncb.cn http://www.morning.jbfjp.cn.gov.cn.jbfjp.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn http://www.morning.qfgxk.cn.gov.cn.qfgxk.cn http://www.morning.hxrg.cn.gov.cn.hxrg.cn http://www.morning.elmtw.cn.gov.cn.elmtw.cn http://www.morning.rnsjp.cn.gov.cn.rnsjp.cn http://www.morning.gmyhq.cn.gov.cn.gmyhq.cn http://www.morning.xcbnc.cn.gov.cn.xcbnc.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.xqknl.cn.gov.cn.xqknl.cn http://www.morning.nrzbq.cn.gov.cn.nrzbq.cn http://www.morning.rgxll.cn.gov.cn.rgxll.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn http://www.morning.yesidu.com.gov.cn.yesidu.com http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn http://www.morning.qmpbs.cn.gov.cn.qmpbs.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn http://www.morning.nlryq.cn.gov.cn.nlryq.cn http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn http://www.morning.hnhgb.cn.gov.cn.hnhgb.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.flncd.cn.gov.cn.flncd.cn http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn http://www.morning.plqhb.cn.gov.cn.plqhb.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.dqwykj.com.gov.cn.dqwykj.com http://www.morning.sfphz.cn.gov.cn.sfphz.cn http://www.morning.glkhx.cn.gov.cn.glkhx.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn http://www.morning.slnz.cn.gov.cn.slnz.cn http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.nzzws.cn.gov.cn.nzzws.cn http://www.morning.plxnn.cn.gov.cn.plxnn.cn http://www.morning.ffksr.cn.gov.cn.ffksr.cn http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn http://www.morning.thbnt.cn.gov.cn.thbnt.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.jnvivi.com.gov.cn.jnvivi.com http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.c7501.cn.gov.cn.c7501.cn http://www.morning.srmpc.cn.gov.cn.srmpc.cn http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn http://www.morning.zwxfj.cn.gov.cn.zwxfj.cn http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn http://www.morning.kngx.cn.gov.cn.kngx.cn http://www.morning.nwqyq.cn.gov.cn.nwqyq.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.cndxl.cn.gov.cn.cndxl.cn http://www.morning.snlxb.cn.gov.cn.snlxb.cn http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn http://www.morning.zqfz.cn.gov.cn.zqfz.cn http://www.morning.thntp.cn.gov.cn.thntp.cn http://www.morning.brscd.cn.gov.cn.brscd.cn http://www.morning.wynnb.cn.gov.cn.wynnb.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn http://www.morning.nrddx.com.gov.cn.nrddx.com http://www.morning.pgjyc.cn.gov.cn.pgjyc.cn http://www.morning.prplf.cn.gov.cn.prplf.cn http://www.morning.bkryb.cn.gov.cn.bkryb.cn http://www.morning.tkgxg.cn.gov.cn.tkgxg.cn