//相当于是把加法变成了两部分,一部分是直接得出了无进位的值 a ,另一部分是进位 b,我们的最终目的是把 a 和 b 合起来得到最终的结果,但是a 和 b 得到最终结果的过程又是一次加法。 //于是加到最后进位为0,就是说没有进位了,a 就是我们想要的结果。加法能做,那么减法,,乘法是不是也就可以了, public int Add(int num1,int num2){ while(num2!=0){ int tmp1=num1^num2; // 无进位加法 int tmp2=num1&num2<<1;//得到进位,进位为0就退出 num1=tmp1; num2=tmp2;//进位的值与无进位的结果一起相加 } return num1; }