4

当我编译这段代码时:

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 对两个布尔值进行异或运算时,我得到了错误。

是不是代码有问题。我对 XOR 真值表的记忆是 True XOR True 是 false。

4

2 回答 2

26

复制粘贴错误。

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;
于 2009-03-12T13:06:04.430 回答
5

您设置bitstrue两次。您没有设置moreBitstrue,所以它默认为 all- false。我责怪复制/粘贴!

编辑:在很短的时间内,我写了这个肯特回答并获得了 8 次投票!

于 2009-03-12T13:13:37.737 回答