Sto provando a xor 2 binari usando python come questo ma il mio output non è in binario alcun aiuto?come xor binario con python
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a)^int(b)
print y
Sto provando a xor 2 binari usando python come questo ma il mio output non è in binario alcun aiuto?come xor binario con 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)
E non mi non dà la risposta con la stessa lunghezza –
Certo. La risposta non ha la stessa lunghezza. –
Se vuoi stampare la risposta con la stessa lunghezza, prova: 'stampa '{0: 0 {1} b}'. Format (y, len (a))' –
Dal momento che si sta avviando con le stringhe e desidera un risultato stringa, si può trovare questo interessante ma funziona solo se sono della stessa lunghezza.
y = ''.join('0' if i == j else '1' for i, j in zip(a,b))
Se essi potrebbero essere diverse lunghezze si può fare:
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
Per ottenere il file binario Xor'd per la stessa lunghezza, secondo la richiesta del PO, effettuare le seguenti operazioni:
a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int(a, 2)^int(b,2)
print bin(y)[2:].zfill(len(a))
[output: 00010100000000001110000101010001001]
Convertire le stringhe binarie in una base intera 2, quindi XOR
, quindi bin()
e quindi saltare i primi due caratteri, 0b
, quindi bin(y0)[2:]
.
Successivamente, solo zfill
alla lunghezza - len(a)
, per questo caso.
Acclamazioni
di stampa in formato binario, dovrebbe funzionare – karthikr