unsigned fulladd(unsigned int a, unsigned int b, unsigned int& sum, unsigned int& carry) { do { sum=a^b; b= (a&b); if(b&( 0x1 b a=sum; }while(b); }