Ich versuche, Xor 2 Binärdateien mit Python wie folgt, aber meine Ausgabe ist nicht in Binär Hilfe?wie Xor binär mit Python
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a)^int(b)
print y
Ich versuche, Xor 2 Binärdateien mit Python wie folgt, aber meine Ausgabe ist nicht in Binär Hilfe?wie Xor binär mit Python
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a)^int(b)
print y
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a,2)^int(b,2)
print '{0:b}'.format(y)
arbeiten Es gib mir nicht die Antwort mit der gleichen Länge –
Natürlich nicht. Die Antwort hat nicht die gleiche Länge. –
Wenn Sie die Antwort mit der gleichen Länge drucken möchten, versuchen Sie: 'print '{0: 0 {1} b}'. Format (y, len (a))' –
Da ein String Ergebnis mit Streichern und wollen beginnen, können Sie diese interessant finden, aber es funktioniert nur, wenn sie die gleiche Länge haben.
y = ''.join('0' if i == j else '1' for i, j in zip(a,b))
Wenn sie unterschiedlich lang sein könnte, können Sie tun:
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
die XOR-verknüpft binär auf die gleiche Länge zu erhalten, wie pro Antrag des OP, gehen Sie wie folgt vor:
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a, 2)^int(b,2)
print bin(y)[2:].zfill(len(a))
[output: 00010100000000001110000101010001001]
Konvertieren Sie die binären Zeichenfolgen in eine Ganzzahl-Basis 2, dann XOR
, dann bin()
und überspringen Sie dann die ersten beiden Zeichen, 0b
, daher die bin(y0)[2:]
.
Danach, nur zfill
auf die Länge - len(a)
, für diesen Fall.
Prost
Druck im Binärformat, sollte es – karthikr