你好,我正在尝试在Python中对两个字符串进行异或操作(应先转换为十六进制)。我知道一种方法可以实现:
def xor_two_str(str1, str2):
return hex(int(str1,16) ^ int(str2,16))
但是我尝试过类似这样的东西:
def change_to_be_hex(str):
return hex(int(str,base=16))
def xor_two_str(str1,str2):
a = change_to_be_hex(str1)
b = change_to_be_hex(str2)
return hex(a ^ b)
print xor_two_str("12ef","abcd")
这将返回TypeError: ^ 不应该在str和str之间使用。我不知道为什么。
同时,这个函数也不起作用:
bcd = change_to_be_hex("12ef")
def increment_hex(hex_n):
return hex_n + 1
result = increment_hex(bcd)
print result
错误信息为:TypeError: 无法将“str”对象和“int”对象连接起来。我觉得这很奇怪 :(
谢谢!
^
。那么你的问题是什么? - Stop harming Monica