2

我正在尝试阅读 abyte并转换为bit. 我正在尝试创建一个标记系统。

所以字节 3 将提高前两个标志为真。但是,当我尝试转换它时,它只是将 的值byte作为BitArray. 非常感谢任何帮助。

BinaryReader br = new BinaryReader(filestream);

Byte flag = br.ReadByte();

BitArray flags = new BitArray(flag); 

record.Isbool = flags[0];
record.Isbool1 = flags[1];

etc
4

4 回答 4

4

new BitArray(flag);使用BitArray(Int32 length)构造函数。这设置了容量,而不是你想要的。

您可以使用

    new BitArray(new byte[] { flag }); 
于 2013-01-17T13:04:21.373 回答
1

你需要使用

BitArray flags = new BitArray(new byte[] {flag});

byte[]重载使用字节中的位;目前你正在调用int重载,它给出了你发现的长度。

于 2013-01-17T13:03:58.300 回答
1
BinaryReader br = new BinaryReader(filestream);

Byte flag = br.ReadByte();

BitArray flags = new BitArray(new byte[] {flag}); 

record.Isbool = flags[0];
record.Isbool1 = flags[1];

通过调用BitArray(byte[])构造函数应该可以工作。

于 2013-01-17T13:04:18.123 回答
0

你有没有尝试掩饰。int flag = value & 0x01 来屏蔽第一位。

于 2013-01-17T13:04:46.693 回答