C#中的BitArrays有问题吗?

时间:2009-03-12 13:03:05

标签: c# xor bitarray

当我调用这段代码时:

BitArray bits = new BitArray(3);
bits[0] = true;
bits[1] = true; 
bits[2] = true;

BitArray moreBits = new BitArray(3);
bits[0] = true;
bits[1] = true;
bits[2] = true;

BitArray xorBits = bits.Xor(moreBits);

foreach (bool bit in xorBits)
{
Console.WriteLine(bit);
}

我得到以下输出:

  
    

True True True

  

当我通过说出true ^ true对两个布尔值进行xor时,我得到false。

代码有问题吗?我对XOR真值表的记忆是真XOR True是假的。

2 个答案:

答案 0 :(得分:27)

复制并粘贴错误。

BitArray moreBits = new BitArray(3);
bits[0] = true;
bits[1] = true;
bits[2] = true;

应该是:

BitArray moreBits = new BitArray(3);
moreBits[0] = true;
moreBits[1] = true;
moreBits[2] = true;

答案 1 :(得分:6)

您将bits设置为true两次。您不是moreBitstrue的设置,因此默认为全部 - false。我怪复制/粘贴!

编辑:在短时间内,我写了这个肯特回答并且投了8次!