javaee论坛

普通会员

225648

帖子

337

回复

351

积分

楼主
发表于 2017-07-10 03:33:02 | 查看: 302 | 回复: 0
在这里我们主要运用异或运算,那么首先就得了解异或运算

异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。其运算法则为a异或b=a'b或ab'(a'为非a)。真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。简单点说就是异或的两个值'相同为假,不同为真'。异或运算法则

1. a ^ b = b ^ a

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

3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.

4. a ^ b ^ a = b.
根据以上法则我们可以推广到更多的数进行异或,对于程序中的数据,可以看成 1^2^3^4^5^1^2^3^4,然后根据交换法则可以变为1^1^2^2^3^3^4^4^5,两两相同的异或为0,0和任何数异或就是它本身,所以就可以找出单独出现一个的元素。


您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017