Xor of two binary numbers 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

93.9k25 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))

Xor of two binary numbers in python

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

Xor of two binary numbers in python

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

Xor of two binary numbers in python

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 badges50 bronze badges

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given two binary strings A and B of equal lengths, the task is to print a string which is the XOR of Binary Strings A and B.
    Examples: 
     

    Input: A = “0001”, B = “0010” 
    Output: 0011
    Input: A = “1010”, B = “0101” 
    Output: 1111 
     

    Approach: The idea is to iterate over both the string character by character and if the character mismatched then add “1” as the character in the answer string otherwise add “0” to the answer string to generate the XOR string.
     

    Xor of two binary numbers in python

    Below is the implementation of the above approach:
     

    C++

    #include

    using namespace std;

    string xoring(string a, string b, int n){

    string ans = "";

        for (int i = 0; i < n; i++)

        {

            if (a[i] == b[i])

                ans += "0";

            else

                ans += "1";

        }

        return ans;

    }

    int main()

    {

        string a = "1010";

        string b = "1101";

        int n = a.length();

        string c = xoring(a, b, n);

        cout << c << endl;

    }

    Java

    import java.io.*;

    class GFG {

        static String  xoring(String a, String b, int n){

        String ans = "";

            for (int i = 0; i < n; i++)

            {

                if (a.charAt(i) == b.charAt(i))

                    ans += "0";

                else

                    ans += "1";

            }

            return ans;

        }

        public static void main (String[] args)

        {

            String a = "1010";

            String b = "1101";

            int n = a.length();

            String c = xoring(a, b, n);

            System.out.println(c);

        }

    }

    Python3

    def xor(a, b, n):

        ans = ""

        for i in range(n):

            if (a[i] == b[i]):

                ans += "0"

            else:

                ans += "1"

        return ans

    if __name__ == "__main__":

        a = "1010"

        b = "1101"

        n = len(a)

        c = xor(a, b, n)

        print(c)

    C#

    using System;

    class GFG{

        static string xoring(string a, string b, int n){

        string ans = "";

            for (int i = 0; i < n; i++)

            {

                if (a[i] == b[i])

                    ans += "0";

                else

                    ans += "1";

            }

            return ans;

        }

        static public void Main ()

        {

            string a = "1010";

            string b = "1101";

            int n = a.Length;

            string c = xoring(a, b, n);

            Console.WriteLine(c);

        }

    }

    Javascript

    Output:

    0111

    How do you find the XOR of two binary numbers?

    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)..

    How do you use binary XOR in Python?

    In Python, bitwise operators are used to performing bitwise calculations on integers. The integers are first converted into binary and then operations are performed on bit by bit, hence the name bitwise operators. ... Bitwise operators..

    How do you get XOR 2 numbers in Python?

    The Bitwise XOR sets the input bits to 1 if either, but not both, of the analogous bits in the two operands is 1. Use the XOR operator ^ between two values to perform bitwise “exclusive or” on their binary representations. For example, when used between two integers, the XOR operator returns an integer.

    Can you use XOR in Python?

    In Python, we can perform the bitwise XOR operation using the "^" symbol. The XOR operation can be used for different purposes; XOR of two integers, XOR of two booleans, Swapping two numbers using XOR, etc. We can also use the xor() function using the operator module in Python.