EXAMPLE:
Code:
For adding x=6 and y=10
6 ----> 0 1 1 0
10 ----> 1 0 1 0
------------------
(1) XOR(6^10) ----> 1 1 0 0 carry(6&10) ----> 0 0 1 0
(2) carry(6&10) << 1 ----> 0 1 0 0
------------------
(3) [1] OR [2] ----> 1 1 0 0 = ( 12) carry(12&4) ----> 0 1 0 0
(4) carry(12&4) << 1 ----> 1 0 0 0
-------------------
[3] OR [4] ----> 1 0 0 0 = (16)
Code:
int Add(int x, int y)
{
while (y != 0)
{
int carry = x & y;
x = x ^ y;
y = carry << 1;
}
return x;
}
No comments:
Post a Comment