在这里我们主要运用异或运算,那么首先就得了解异或运算
异或(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和任何数异或就是它本身,所以就可以找出单独出现一个的元素。