1

我有一个 C 结构,其定义方式与此类似:

struct TestStruct
{
    uint flag1 :2;
    uint flag2 :2;
    uint flag3 :2;
    uint flag4 :2;

    uint value1;
} TestStruct;

我知道我可以通过使用StructLayout属性和反序列化二进制结构Marshal.PtrToStructure()。但是有没有办法用二进制字段来做到这一点,如一个值只有 2 位长的结构所示​​?

提前致谢。

4

1 回答 1

1

C# 中没有对这种结构的直接支持。您必须使用包含所有位的整数类型,然后从中提取字段。

请参阅C# 中的位字段中非常相似的问题的解决方案

于 2011-02-09T19:16:09.260 回答