1.原理:按位异或运算符,数值化成二进制,然后对应的二进制位相异时,数值为1,相同则为0
例如:
(1)如果是整数
10 = 1010
3 = 0011
10^3 = 1001 = 9
(2)如果是字符,先转化为十进制,再转化为二进制
#chr()将数字(10进制)转化为中文
#ord()#将中文转化为数字(10进制)
#转化为十进制,然后转为二进制
bin(ord(a))
a = 'a' = 1100001
d = 'n' = 1101110
a^d = 0001111
2.实际用法:遵循 任意数和自身异或结果为0;0和任意数异或结果还是其本身。
(1)交换数值
a = 200
print(a^a)
#输出结果:0
print(a^0)
#输出结果:200
#所以,将a的值赋予b,可以如下操作
b = a^0
(2)寻找数据列表中的独一无二
找出下面列表中的‘5’
#方法一
list = [1,2,3,5,1,2,3]
for i in list:
c = list.count(i)
if c==1:
print(i)
#方法二
c = 0
for i in list:
c = i^c
print(c)