How do you use xor binary in python?

I'm trying to xor 2 binaries using python like this but my output is not in binary any help?

a = "11011111101100110110011001011101000"
b = "11001011101100111000011100001100001"
y = int[a] ^ int[b]
print y

karthikr

94k25 gold badges191 silver badges186 bronze badges

asked Oct 16, 2013 at 21:19

1

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

answered Oct 16, 2013 at 21:20

RobᵩRobᵩ

157k17 gold badges224 silver badges300 bronze badges

4

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

Matan Itzhak

2,2102 gold badges18 silver badges33 bronze badges

answered Mar 19, 2017 at 16:21

BigHBigH

3224 silver badges5 bronze badges

Since you are trying to carryout XOR on the same length binaries, the following should work just fine:

c=[str[int[a[i]]^int[b[i]]] for i in range[len[a]]]
c=''.join[c]

You can avoid the formatting altogether.

answered Nov 27, 2020 at 17:26

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

answered Oct 16, 2013 at 23:29

dansalmodansalmo

11.1k5 gold badges55 silver badges51 bronze badges

  • Docs »
  • ^ Bitwise Exclusive XOR
  • Edit on GitHub

Description¶

Returns the result of bitwise XOR of two integers.

Syntax¶

A ^ B

AInteger object.BInteger object.

Remarks¶

Bitwise XOR sets the bits in the result to 1 if either, but not both, of the corresponding bits in the two operands is 1.

Example 1¶

>>> bin[0b1111 ^ 0b1111]
'0b0'
>>> bin[0b1111 ^ 0b0000]
'0b1111'
>>> bin[0b0000 ^ 0b1111]
'0b1111'
>>> bin[0b1010 ^ 0b1111]
'0b101'

Example 2¶

>>> # this example swaps integers without a temporary variable using XOR
>>> a = 2
>>> b = 8
>>> a ^= b
>>> b ^= a
>>> a ^= b
>>> a
8
>>> b
2

How do you do binary operation in XOR?

To find the XOR of two numbers, follow these instructions:.
Convert the numbers into the binary representation..
Compare the corresponding bits of the two numbers..
If only one of the input bits is true [1], the output is true [1]. Otherwise, the output is false [0]..

Is there a XOR in Python?

In Python, XOR is a bitwise operator that is also known as Exclusive OR. It is a logical operator which outputs 1 when either of the operands is 1 [one is 1 and the other one is 0], but both are not 1, and both are not 0.

How do you XOR a list in Python?

Method #1 : Using reduce[] + lambda + “^” operator The above functions can be combined to perform this task. We can employ reduce[] to accumulate the result of XOR logic specified by the lambda function.

Chủ Đề