function add(a,b){
while(b != 0){
sum = a ^ b;
c = (a & b) <<1;
a = sum;
b = c;
}
return a;
}
递归是有stack限制,某些情况用循环解决这个问题。
10 回答10.4k 阅读
3 回答11.3k 阅读✓ 已解决
4 回答8.6k 阅读✓ 已解决
7 回答10.7k 阅读
2 回答11.3k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答4.2k 阅读✓ 已解决
单纯看报错信息是死循环了。
修改成这样就可以了
主要出的问题是运算符的优先级的问题,比较运算符 会优先于 位运算符。
所以实际上你的三元表达式的判断条件是这样执行的
a & (b === 0)
。所以除非执行的时候
b
传入的是0
否则就永远没办法返回true
值了。