异或的补码

1 python bit-manipulation xor

查找 ~A XOR B 的最有效算法是什么?(注意~是求补函数,是将每个1位反转为0,将每个0反转为1位,XOR是异或函数)

例如,〜4 XOR 6 =〜010 = 101 = 5 和〜6 XOR 9 =〜1111 = 0

Tav*_*nes 5

这是考虑到存储整数所需的位数的答案:

def xnor(a, b):
    length = max(a.bit_length(), b.bit_length())
    return (~a ^ b) & ((1 << length) - 1)
Run Code Online (Sandbox Code Playgroud)

我想不出还有什么比这更好的情况了~a ^ b。对于负数来说几乎可以肯定是没有意义的。