当我调用这段代码时:
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是假的。
答案 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
两次。您不是moreBits
到true
的设置,因此默认为全部 - false
。我怪复制/粘贴!