为什么在Javascript中2或3是1
全部: 有一个算法问题:不使用+和-,将整数a和b相加。 我试着用XOR来做,但是当我用2^3的时候,结果变成了1,我想我对^的理解是错误的,所以不管怎样,我想知道如何才能得到5 谢谢为什么在Javascript中2或3是1,javascript,xor,Javascript,Xor,全部: 有一个算法问题:不使用+和-,将整数a和b相加。 我试着用XOR来做,但是当我用2^3的时候,结果变成了1,我想我对^的理解是错误的,所以不管怎样,我想知道如何才能得到5 谢谢 XOR表示一个或另一个,但不能同时表示两个 这是XOR工作的正确方式 1:0001 2: 0010 3:0011 0010^0011合并只有1个的1。两组中都有1的任何位置都将变为0。因此,2^3==1 下面是一个解决脑筋急转弯问题的方法,即不使用+ 有趣的是,a^=b实际上是一个很好的开始,但您需要更多的代码才
XOR表示一个或另一个,但不能同时表示两个 这是XOR工作的正确方式 1:0001 2: 0010 3:0011 0010^0011合并只有1个的1。两组中都有1的任何位置都将变为0。因此,2^3==1 下面是一个解决脑筋急转弯问题的方法,即不使用+
有趣的是,
a^=b
实际上是一个很好的开始,但您需要更多的代码才能将其转换为“add”
函数加法器(a、b){
var c;
while(b){//当我们有东西要补充时。。。
c=a&b;//c=在a和b中都设置的位
c您不能直接用另一个运算符替换+
,并期望得到相同的结果-如果可以,我们不需要+
。
1 0 => 2
^ 1 1 => 3
= 0 1 => 1