Python: Add two positive integers without using the '+' operator
Add Without Plus
Write a Python program to add two positive integers without using the '+' operator.
Note: Use bitwise operations to add two numbers.
Sample Solution:
Python Code:
# Define a function 'add_without_plus_operator' that performs addition without using the '+' operator.
def add_without_plus_operator(a, b):
# Continue the loop until the carry (b) becomes zero.
while b != 0:
# Calculate the bitwise AND of 'a' and 'b'.
data = a & b
# XOR 'a' and 'b' to get the sum without considering carry.
a = a ^ b
# Left shift the carry by 1 position.
b = data << 1
# Return the final sum.
return a
# Test the function with different inputs and print the results.
print(add_without_plus_operator(2, 10))
print(add_without_plus_operator(-20, 10))
print(add_without_plus_operator(-10, -20))
Sample Output:
12 -10 -30
Explanation:
The above Python code defines a function called "add_without_plus_operator()" that performs addition without using the '+' operator. It utilizes bitwise operations (AND, XOR, and left shift) to simulate addition. Here's a brief explanation:
- The function takes two integers 'a' and 'b' as input.
- It enters a loop that continues until the carry ('b') becomes zero.
- Within the loop:
- It calculates the bitwise AND of 'a' and 'b' and stores the result in 'data'.
- It XORs 'a' and 'b' to get the sum without considering the carry.
- It left-shifts the carry ('data') by 1 position.
- After the loop, the function returns the final sum ('a').
- The code then tests the function with different inputs and prints the results.
Visual Presentation:
Flowchart:
Python Code Editor :
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to get all possible two digit letter combinations from a digit (1 to 9) string.
Next: Write a Python program to check the priority of the four operators (+, -, *, /).
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics