# Python: Add two positive integers without using the '+' operator

## Python Basic - 1: Exercise-14 with Solution

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