案例一
a=10
b=15
c=a^b
d=bin(c).count("1")
print(c)
print(d)
运行结果为:c=5,d=2,这是怎么计算的呢?首先,a=10,转换为二进制是1010,b=15,转换为二进制是1111,取异或为0101,它的十进制是5,所以c=5,其中异或结果“1”的位数为2,也就是不相同的位数是2,即:
10^15=5
案例二
i=0b1101
j=0b0110
k=i^j
l=bin(k).count("1")
print(k)
print(l)
运行结果为:k=11,l=2,这是怎么计算的呢?首先,i=0b1101,j=0b0110,(0b表示二进制)取异或为1011,它的十进制是11,所以k=11,其中异或结果“1”的位数为3,也就是不相同的位数是3,即:
0b1101^0b0110=11