Python Program to Add two Numbers without using Addition Operator

In this article, we will learn about python program to add two numbers without using addition operator (i.e. + operator)

Getting Started

The task is use to add two numbers in python without using + operator.

In other words,

We have to add two numbers a and b without using + operator.

Add Two Numbers in Python Without + operator

We will be using Half Adder Logic to add two numbers.

Pseudo Algorithm using Half Adder Logic

  • Let’s say we want to add two numbers a and b.
  • Step 1: If both numbers don’t have set bit (i.e. 1) at same position, simply XOR operation (^) gives sum of a and b.
  • Step 2: Else if they have set bits at same position, AND operation (bitwise &) provides carry bits at all position.
  • Step 3: Now, left shift carry bits by 1 and add it to result obtained it by performing XOR operation.
  • Step 4: Repeat step 1, step 2 and step 3 until carry is zero (i.e. 0).

Python Program

 
def addWithoutOperator(a, b):

    # Run while carry is not 0
    while (b != 0):
        
        # Carry contains common set bits of a and b
        carry = a & b
        
        ## partial sum where a^b contains sets bits either from a or b.
        a = a ^ b

        # Shifts the carry by 1 bit so that it gives required sum when added with a in next iteration.
        b = carry << 1
    return a


print("Sum = ", addWithoutOperator(15, 31))

Output:

 
Sum =  46

Python Program to Add Two Numbers Using Recursion

We can write above program using recursion to add two numbers in python as shown below –

 
def addWithoutOperator(a, b):
    if (b == 0):
        return a
    else:
        return addWithoutOperator( a ^ b, (a & b) << 1)
        
print("Sum = ", addWithoutOperator(15, 31)) 

Output:

 
Sum =  46

In above program, calling addWithoutOperator method until carry is 0.

Time complexity: O(log b)

Space complexity: O(1)

That’s how we can write python program to add two numbers without using addition operator.

Learn more python programs at – https://tutorialwing.com/python-tutorial/

Leave a Reply