为什么2 XOR 3在Javascript中是1

时间:2016-08-10 22:12:50

标签: javascript xor

所有

有一个算法问题:在不使用+和 - 的情况下添加整数a和b。 我尝试使用XOR来做到这一点,但是当我使用2 ^ 3时结果变为1,我想我对^的理解是错误的,所以无论如何我想知道如何得到5?

由于

3 个答案:

答案 0 :(得分:3)

  1 0 => 2
^ 1 1 => 3
= 0 1 => 1

XOR表示一个或另一个,但不是两个。

答案 1 :(得分:1)

有趣的是,select Employee.Person, Production.Percent from Employee INNER JOIN SiteCode on Employee.Site = SiteCode.Sitecode INNER JOIN SiteCode.Sitecode = Production.Site 实际上是一个非常好的开始,但您需要更多代码才能将其转换为“添加”。



// "Constant Array of STR"
macro_rules! castr {
    ($($es:expr),* $(,)*) => {
        {
            const C: &'static [&'static str] = &[$($es),*];
            C
        }
    };
}

fn main() {
    test(castr!["a", "b", "penguin"]);
}

fn test(ss: &'static [&'static str]) {
    println!("{:?}", ss);
}




答案 2 :(得分:0)

这是XOR工作的正确方式

1:0001 2:0010 3:0011

0010 ^ 0011将1s组合在一起只有1的位置。两个组中有1s的任何位置变为0.因此,2 ^ 3 == 1.

以下是不使用+

添加脑筋急转弯问题的解决方案

https://helloacm.com/how-to-compute-sum-of-two-integers-without-plus-and-minus-operators/