binary hex 0000 0 0001 1 0010 2 0011 3 ... 1001 9 1010 a 1011 b 1100 c 1101 d 1110 e 1111 f 0xfeed0dad 1111 1110 1110 1101 0000 1101 1010 1101 1110100010 0011 1010 0010 3 a 2 6+7=3 with a carry in binary: 0+0=0 0+1=1 1+0=1 1+1=0 with a carry result(x[i],y[i]) = x[i] xor y[i] carry(x[i],y[i]) = x[i] and y[i] result(result(x[i],y[i]),carry(x[i-1],y[i-1])) carry(result(x[i],y[i]),carry(x[i-1],y[i-1]))