如何使用python xor二进制文件

时间:2013-10-16 21:19:39

标签: python binary xor

我正在尝试像这样使用python xor 2二进制文件但我的输出不是二进制文件 有什么帮助吗?

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

4 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:6)

要根据OP的请求将Xor&#dd二进制文件设置为相同的长度,请执行以下操作:

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)

干杯

答案 2 :(得分:0)

由于您要对相同长度的二进制文件执行XOR,因此以下操作应该可以:

signInWithCredential

您可以完全避免格式化。

答案 3 :(得分:-2)

由于你是从字符串开始并想要一个字符串结果,你可能会觉得这很有趣,但只有它们的长度相同才有效。

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