awesum :) thanx all On Tue, Jul 12, 2011 at 8:27 PM, bittu <shashank7andr...@gmail.com> wrote:
> Lets Try For Decimal Integer Number how we add them > > 1 Add 759 + 674, but “forget” to carry I then get 323 > 2 Add 759 + 674 but only do the carrying, rather than the addition of > each digit I then > get 1110 > 3 Add the result of the first two operations (recursively, using the > same process de- > scribed in step 1 and 2): 1110 + 323 = 1433 > > we have done for decimal numbers > > Now, how would we do this in binary? > > 1 If I add two binary numbers together but forget to carry, bit[i] > will be 0 if bit[i] in a and > b are both 0 or both 1 This is an XOR > 2 If I add two numbers together but only carry, I will have a 1 in > bit[i] if bit[i-1] in a and b > are both 1’s This is an AND, shifted > > 3 Now, recurse until there’s nothing to carry > > int add_no_arithm(int a, int b) > { > if (b == 0) return a; > int sum = a ^ b; // add without carrying > int carry = (a & b) << 1; // carry, but don’t add return > add_no_arithm(sum, carry); // recurse > } > > Subtraction uses add function internally as well as we have adder !!! > > int sub(int x, int y) > { > return(add(x,add(~y,1)); > > } > > Thanks > Shashank Mani > Computer Science > Birla Institute of Technology Mesra > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.