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