不使用+运算符

Jon*_*ony 2 java

谁能解释一下这个功能是如何工作的?

public int TestAdd(int a,int b) {

        if(a <1)return b;       
        return(TestAdd((a&b)<<1,a^b));      
    }
Run Code Online (Sandbox Code Playgroud)

wal*_*lky 6

添加两个匹配的设置二进制数字相当于设置下一位:1 + 1 = 2,依此类推.因此,该函数对所有匹配位执行此操作,然后将不匹配的位传递到另一轮.如果没有不匹配的,那就完成了.