Python: Find the XOR of two given strings interpreted as binary numbers
Python Programming Puzzles: Exercise-25 with Solution
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:
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:
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:
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.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/puzzles/python-programming-puzzles-25.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics