给出两个整数 a 和 b , 求他们的和。
显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?
两数异或得到无进位的加法,两数相与并且左移一位表示进位.
详细代码:
public int plus(int a, int b){ while(b != 0){ int ta = a^b; int tb = (a&b)<<1; a = ta; b = tb; } return a; }