以下是我试图找出列表元素的xor的代码。
r = [17, 18, 19, 20, 21, 22, 25, 26, 27, 29]
result = 0
for x in r:
result ^= x
print (result)
为什么不应该是2呢? 我对你的代码进行了中间二进制结果的检测,所有发出的二进制XOR操作看起来都是正确的结果。
r = [17, 18, 19, 20, 21, 22, 25, 26, 27, 29]
result = 0
for x in r:
print("{0:05b} XOR".format(result))
print("{0:05b}".format(x))
result ^= x
print("-----")
print("{0:05b}\n".format(result))
print (result)
所有的二进制XOR操作看起来都产生了正确的结果。你可以随意运行它并检查这些结果。
主要的启示不是说2是正确的结果,而是你可以在你的代码中添加仪器,帮助你说服自己算法是正确的(或者发现其中的错误)。