23

このようにPythonを使用して2つのバイナリをxorしようとしていますが、出力はバイナリではありませんか?

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

4 に答える 4

34
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a,2) ^ int(b,2)
print '{0:b}'.format(y)
于 2013-10-16T21:20:50.720 に答える
-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
于 2013-10-16T23:29:24.563 に答える