加
- int AddWithoutArithmetic(int num1,int num2)
- {
- if(num2==0) return num1;//没有进位的时候完成运算
- int sum,carry;
- sum=num1^num2;//完成第一步没有进位的加法运算
- carry=(num1&num2)<<1;//完成第二步进位并且左移运算
- return AddWithoutArithmetic(sum,carry);//进行递归,相加
- }
- int Add(int a,int b) { b?return Add(a^b,(a&b)<<1):return a; }
减
乘
int MyMul(int a,int b) { int ans=0; for(int i=1;i;i<<=1,a<<=1) if(b&i) ans+=a; return ans; }
除