Friday, December 9, 2011

Write a function that adds two numbers. You should not use + or any arithmetic op- erators.

      int add_no_arithm(int a, int b) {
2            if (b == 0) return a;
3            int sum = a ^ b; // add without carrying
4            int carry = (a & b) << 1; // carry, but don’t add
5            return add_no_arithm(sum, carry); // recurse
6     }

No comments:

Post a Comment