В настоящее время я выполняю проект по двоичным операторам. Прямо сейчас у меня есть два списка с чередой строк с 8 бит 1 с и 0. Скажем, у меня есть этот код (представление о том, что получается, когда я создаю два массива):«Неподдерживаемый тип операндов для ^: 'str' и 'str'" с Binary в Python 3.x
arr1 = ['0b01110101', '0b00001111', '0b01001101']
arr2 = ['0b10010100', '0b00000101', '0b00111001']
arr3 = []
Я хочу, чтобы запустить цикл, в котором я выполнить бинарную операцию XOR каждого значения. Вот мой цикл до сих пор:
for i in len(arr1):
arr3[i] = arr1[i]^arr2[i]
Когда я запускаю этот код, я получаю сообщение об ошибке:
Unsupported operand type(s) for ^: 'str' and 'str'
Я пытался сделать это:
arr3[i] = bin(arr1[i])^bin(arr2[i])
и возвращает эту ошибку сообщение:
TypeError: 'str' object cannot be interpreted as an integer
Как я могу получить aroun d это?
EDIT 1: Это не дубликат того, что было отмечено в комментариях. Я не смотрю, как делать обычную двоичную функцию XOR. Я знаю, как это сделать. Я ищу способ преобразования этих строк в двоичные числа, чтобы я мог использовать на них оператор XOR.
поверг их Интс. 'int ('0b00111001', 2) == 57'. Все побитовые операторы работают для ints. –
Вы прочитали эти два ответа, чтобы узнать, помогает ли он ответить на ваш вопрос: [здесь] (http://stackoverflow.com/questions/19414093/how-to-xor-binary-with-python) и [здесь] (http : //stackoverflow.com/questions/2612720/how-to-do-bitwise-exclusive-or-of-two-strings-in-python) – idjaw
Возможный дубликат [как для xor binary с python] (http: // stackoverflow.com/questions/19414093/how-to-xor-binary-with-python) –