побитовое XOR шестнадцатеричных чисел в питоне
как мы можем XOR шестнадцатеричные числа в Python, например. Я хочу сделать xor 'ABCD' до «12EF». ответ должен быть B922.
я использовал код ниже, но он возвращает значение мусора
def strxor(a, b): # xor two strings of different lengths
if len(a) > len(b):
return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)])
else:
return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a, b[:len(a)])])
key ='12ef'
m1='abcd'
print strxor(key,m1)