# Add without using any arithmetic operators

From Embedded Systems Learning Academy

## Interview Question : Add without using any arithmetic operators

* Approach:* What choice do we have if not to use any operators for addition?

**Bits!!**1) XOR the two numbers to perform addition without any carry.

2) AND them and left shift to perform a carry without any further addition.

3) Recurse until there is nothing left to carry.

```
int addNoOperator (int x, int y)
{
if (y==0) return x; // Base case
int add = x ^ y; // add without any carry
int carry = (x & y) << 1; // carry, but no addition
return addNoOperator (add, carry); // recurse with add + carry
}
```