【问题标题】:BitVector32 - first bit trueBitVector32 - 第一位为真
【发布时间】:2012-12-03 15:58:05
【问题描述】:

我对 BitVector32 的行为有点困惑。看测试:

[TestClass]
public class ParallelPortDevices {
    [TestMethod]
    public void BitVector32Test() {
        var lVector = new BitVector32(0);

        Assert.IsTrue(lVector[0]);
        Assert.IsFalse(lVector[1]);
    }
}

这通过了。 IE。第一位设置为 1(根据测试)。但是,如果您运行 ToString 方法,您将得到“BitVector32{00000000000000000000000000000000}”

我缺少什么?

提前致谢!

【问题讨论】:

  • 索引器表示位掩码,而不是索引。

标签: c# .net bitvector


【解决方案1】:

BitVector32 不使用索引器语法进行索引,它使用它作为位掩码。例如,如果您要这样做:

lVector[7] = true;

ToString 会给出0...000111

getter 的反编译代码如下所示:

return ((long) this.data & (long) bit) == (long) (uint) bit;

所以最终发生的事情是这样的:

(0 & 0) == 0

这当然是真的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    相关资源
    最近更新 更多