w3resource

Python: Find the XOR of two given strings interpreted as binary numbers


XOR of Binary Strings

Write a Python program to find the XOR of two given strings interpreted as binary numbers.

Note: XOR represents the inequality function, i.e., the output is true if the inputs are not alike otherwise the output is false. A way to remember XOR is "must have one or the other but not both". XOR can also be viewed as addition modulo 2. As a result, XOR gates are used to implement binary addition in computers.

Input:
['0001', '1011']
Output:
0b1010

Input:
['100011101100001', '100101100101110']
Output:
0b110001001111

Visual Presentation:

Python: Find the XOR of two given strings interpreted as binary numbers.

Sample Solution-1:

Python Code:

# License: https://bit.ly/3oLErEI

# Define a function named 'test' that takes a list of binary strings 'nums' as input
def test(nums):
    # Use binary XOR (^) on the integers converted from the binary strings in the input list
    # Convert the result back to a binary string
    return bin(int(nums[0], 2) ^ int(nums[1], 2))

# Assign a specific list of binary strings 'nums' to the variable
nums = ["0001", "1011"]

# Print the original list of binary strings 'nums'
print("Original strings:")
print(nums)

# Print a message indicating the operation to be performed
print("XOR of two said strings interpreted as binary numbers:")

# Print the result of the test function applied to the 'nums' list
print(test(nums))

# Assign a different list of binary strings 'nums' to the variable
nums = ["100011101100001", "100101100101110"]

# Print the original list of binary strings 'nums'
print("\nOriginal strings:")
print(nums)

# Print a message indicating the operation to be performed
print("XOR of two said strings interpreted as binary numbers:")

# Print the result of the test function applied to the updated 'nums' list
print(test(nums))

Sample Output:

Original strings:
['0001', '1011']
XOR of two said strings interpreted as binary numbers:
0b1010

Original strings:
['100011101100001', '100101100101110']
XOR of two said strings interpreted as binary numbers:
0b110001001111

Flowchart:

Flowchart: Python - Find the XOR of two given strings interpreted as binary numbers.

Sample Solution-2:

Python Code:

# License: https://bit.ly/3oLErEI

# Define a function named 'test' that takes a list of binary strings 'nums' as input
def test(nums):
    # Unpack the list 'nums' into two binary strings 'a' and 'b'
    a, b = nums
    
    # Use binary XOR (^) on the integers converted from the binary strings in the input list
    xor = int(a, 2) ^ int(b, 2)
    
    # Convert the result back to a binary string, ensuring it has the same length as the input strings
    return bin(xor)[2:].zfill(len(a))

# Assign a specific list of binary strings 'nums' to the variable
nums = ["0001", "1011"]

# Print the original list of binary strings 'nums'
print("Original strings:")
print(nums)

# Print a message indicating the operation to be performed
print("XOR of two said strings interpreted as binary numbers:")

# Print the result of the test function applied to the 'nums' list
print(test(nums))

# Assign a different list of binary strings 'nums' to the variable
nums = ["100011101100001", "100101100101110"]

# Print the original list of binary strings 'nums'
print("\nOriginal strings:")
print(nums)

# Print a message indicating the operation to be performed
print("XOR of two said strings interpreted as binary numbers:")

# Print the result of the test function applied to the updated 'nums' list
print(test(nums))

Sample Output:

Original strings:
['0001', '1011']
XOR of two said strings interpreted as binary numbers:
1010

Original strings:
['100011101100001', '100101100101110']
XOR of two said strings interpreted as binary numbers:
000110001001111

Flowchart:

Flowchart: Python - Find the XOR of two given strings interpreted as binary numbers.

Python Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Create a list whose ith element is the maximum of the first i elements of the input list.
Next: Find the largest number where commas or periods are decimal points.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.