Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Javascript中2或3是1_Javascript_Xor - Fatal编程技术网

为什么在Javascript中2或3是1

为什么在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实际上是一个很好的开始,但您需要更多的代码才

全部:

有一个算法问题:不使用+和-,将整数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
实际上是一个很好的开始,但您需要更多的代码才能将其转换为“add”

函数加法器(a、b){
var c;
while(b){//当我们有东西要补充时。。。
c=a&b;//c=在a和b中都设置的位

c您不能直接用另一个运算符替换
+
,并期望得到相同的结果-如果可以,我们不需要
+
  1 0 => 2
^ 1 1 => 3
= 0 1 => 1