Как xOR двоичный с python - программирование
Подтвердить что ты не робот

Как xOR двоичный с python

Я пытаюсь использовать двоичные файлы xor 2, используя этот питон, но мой вывод не находится в двоичном формате любая помощь?

a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a) ^ int(b)
print y
4b9b3361

Ответ 1

a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a,2) ^ int(b,2)
print '{0:b}'.format(y)

Ответ 2

Чтобы получить двоичный файл Xor'd с той же длиной, что и запрос OP, выполните следующие действия:

a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a, 2)^int(b,2)
print bin(y)[2:].zfill(len(a))

[output: 00010100000000001110000101010001001]

Преобразуйте двоичные строки в целую базу 2, затем XOR, затем bin(), а затем пропустите первые два символа, 0b, следовательно, bin(y0)[2:].
После этого просто zfill до длины - len(a), для этого случая.

Приветствия

Ответ 3

Поскольку вы начинаете со строк и хотите получить результат строки, вы можете найти это интересное, но оно работает только в том случае, если они имеют одинаковую длину.

y = ''.join('0' if i == j else '1' for i, j in zip(a,b))

Если они могут быть различной длины, вы можете сделать:

y = ''.join('0' if i == j else '1' for i, j in zip(a[::-1],b[::-1])[::-1])
y = a[len(y):] + b[len(y):] + y