Python 单个值的按位异或校验和?
我正在对数组进行位校验和Python 单个值的按位异或校验和?,python,Python,我正在对数组进行位校验和 0^1^2^3^4^6 == 2. 17^18^19^20^21^22^23^25^26^29 == 14. 12^ == ? 但是,有时可能只有一个值 对于单个值,数组校验和的等价物是什么?摘要:X^0==X对于任何X,这就是为什么12的结果等于12^0,即12 我在数学上并不精确,但对于一个操作,可能存在一个“中立”值,它什么也不做: 此外,它是0:X+0==X 对于乘法,它是1:X*1==X 对于AND(逻辑,按位),它是True或位值1 等等 始终可
0^1^2^3^4^6 == 2.
17^18^19^20^21^22^23^25^26^29 == 14.
12^ == ?
但是,有时可能只有一个值
对于单个值,数组校验和的等价物是什么?摘要:
X^0==X
对于任何X
,这就是为什么12的结果等于12^0
,即12
我在数学上并不精确,但对于一个操作,可能存在一个“中立”值,它什么也不做:
- 此外,它是0:
X+0==X
- 对于乘法,它是1:
X*1==X
- 对于AND(逻辑,按位),它是
或位值1True
sum(alist)
或product(alist)
实现的起点:
total = 0; for x in alist: total = total + x
prod = 1; for x in alist: prod = prod * x
回到你的问题,XOR的中性值是0。我们将xor写成:
def xor(*args):
result = 0
for x in args:
result ^= x
return result
然后:
>>> xor(17,18,19,20,21,22,23,25,26,29)
14
>>> xor(0,1,2,3,4,6)
2
>>> xor()
0
>>> xor(12)
12
您可以发布您尝试过的代码吗?通常,您使用“参考”值开始校验和计算。