how to xor binary with python

余生长醉 提交于 2019-11-29 13:14:15
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a,2) ^ int(b,2)
print '{0:b}'.format(y)
BigH

To get the Xor'd binary to the same length, as per the OP's request, do the following:

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

[output: 00010100000000001110000101010001001]

Convert the binary strings to an integer base 2, then XOR, then bin() and then skip the first two characters, 0b, hence the bin(y0)[2:].
After that, just zfill to the length - len(a), for this case.

Cheers

Since you are starting with strings and want a string result, you may find this interesting but it only works if they are the same length.

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

If they might be different lengths you can do:

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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!