有人可以帮助理解它在 python(2.7.3 版本)中的工作原理吗?
例如,有两个十六进制字符串
a='5f70a65ac'
b='58e7e5c36'
我怎样才能正确地异或它?
我试过使用类似hex (0x5f0x70 ^ 0x580xe70)
的东西,但它不起作用
最佳答案
在尝试对它们进行数学运算之前将字符串转换为整数,然后再转换回字符串。
print "%x" % (int(a, 16) ^ int(b, 16))
我在这里使用 %
来转换回字符串而不是 hex()
因为 hex()
添加了 0x
到开头(如果值是长整数,则 L
到结尾)。您可以剥离它们,但更容易的是首先不生成它们。
您也可以首先将它们写成十六进制文字:
a=0x5f70a65ac
b=0x58e7e5c36
print "%x" % (a ^ b)
但是,如果您要从文件中读取它们或从用户那里获取它们或其他任何方式,则第一种方法就是您所需要的。
关于python - 如何异或等于十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347237/