Skip to main content

Adding two number wihtout arithmatic operation and without loop


Here is algo:

1. Receive A and B as input.
2. if A or B is zero then goto step 8.
3. xor_a_b = A^B
4. and_a_b = A & B << 1
5. A = xor_a_b
6. B = and_a_b
7. goto step 2
8. Print non zero value of A, B



Lets try doing some example to understand how things work with above logic
A | B | A^B | A&B|A&B<<1
2  | 3 | 01     | 10| 100
1 | 4 | 101|0|0
0|5

If Any of operand is zero, return other operand which is Sum. So 5 is answer.

Let try with other arguments

A | B | A^B | A&B|A&B<<1
5  | 7 | 010    | 101| 1010
2 | 10 | 1000|10|100
8|4|1100|0|0
12|0

So operand 2 is zero, so result is 12.

Comments