什么是异或运算,异或运算的作用.docx

什么是异或运算,异或运算的作用.docx

ID:61991776

大小:16.88 KB

页数:8页

时间:2021-04-09

什么是异或运算,异或运算的作用.docx_第1页
什么是异或运算,异或运算的作用.docx_第2页
什么是异或运算,异或运算的作用.docx_第3页
什么是异或运算,异或运算的作用.docx_第4页
什么是异或运算,异或运算的作用.docx_第5页
资源描述:

《什么是异或运算,异或运算的作用.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、什么是异或运算,异或运算的作用篇一:异或运算异或目录定义异或运算法则异或逻辑作用定义异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。其运算法则为a异或b=ab或ab(a为非a)。真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。不同为1,相同为0,如1001异或1010等于0011.异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0,这些法则与加法是相

2、同的,只是不带进位。异或运算法则1.a^b=b^a2.a^b^c=a^(b^c)=(a^b)^c;3.d=a^b^c可以推出a=d^b^c.4.a^b^a=b.x是二进制数0101y是二进制数1011则结果为x^y=11100^0=00^1=11^0=11^1=0只有在两个比较的位不同时其结果是1,否则结果为0即“相同为0,不同为1”!真^真=假或者为:True^False=TrueFalse^True=TrueFalse^False=FalseTrue^True=False部分计算机语言用1表示真,用0表示假,所以两个字节按位异或如下00000000异或0

3、0000000=00000000============我是分界线============11111111异或00000000=11111111篇二:异或运算的性质异或1的配对性定理:设a为任意非负偶数,b=a+1为比a大1的正奇数;则必有a^1=b,b^1=a;用于处理两两配对问题(如正向、反向边)时很好用!!!如a=2,b=3:2^1=3,3^1=2;98^1=99;99^1=98;123^1=122;9870^1=9871如a=0,b=1:0^1=1,1^1=0;证明:由异或的自反性a^b^b=a^0=a,可知a^1^1=a;又因为对于任意非负偶数有a

4、^1=a+1;所以有:a^1=a+1=b;a^1^1=(a+1)^1=b^1=a;异或的性质及运用异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。性质1、交换律2、结合律(即(a^b)^c==a^(b^c))3、对于任何数x,都有x^x=0,x^0=x4、自反性AXORBXORB=Axor0=A异或运算最常见于多项式除法,不过它最重要的性质还

5、是自反性:AXORBXORB=A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间:设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值表达式(值):类似地,该运算还可以应用在加密,数据传输,校验等等许多领域。运用距离:1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实

6、现?解法一、显然已经有人提出了一个比较精彩的解法,将所有数加起来,减去1+2+...+1000的和。这个算法已经足够完美了,相信出题者的标准答案也就是这个算法,唯一的问题是,如果数列过大,则可能会导致溢出。解法二、异或就没有这个问题,并且性能更好。将所有的数全部异或,得到的结果与1^2^3^...^1000的结果进行异或,得到的结果就是重复数。但是这个算法虽然很简单,但证明起来并不是一件容易的事情。这与异或运算的几个特性有关系。首先是异或运算满足交换律、结合律。所以,1^2^...^n^...^n^...^1000,无论这两个n出现在什么位置,都可以转换成为

7、1^2^...^1000^(n^n)的形式。其次,对于任何数x,都有x^x=0,x^0=x。所以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的结果进行异或,得到的结果就是重复数。当然有人会说,1+2+...+1000的结果有高斯定

8、律可以快速计算,但实际上1^2^...^1000的结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。