当我调用这段代码时:
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); }
我得到以下输出:
真实的真实
当我在两个布尔值上执行xor时,通过说出true ^ true,我得到假.
代码有问题吗?我对XOR真值表的记忆是True XOR True是假的.
复制并粘贴错误.
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;
你bits
要true
两次.你是不是设置moreBits
到true
,所以它默认为清一色false
.我怪复制/粘贴!
编辑:在短时间内,我写了这个肯特回答,并投了8次!