简体   繁体   中英

C# deserializing a binary structure with bitfields - how to do?

I have a C struct that is defined in a way similar to this:

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

    uint value1;
} TestStruct;

I know that I can deserialize a binary struct by using the StructLayout attribute and Marshal.PtrToStructure() . But is there a way to do this with binary fields as shown in the structure where one value is just 2 bits long?

Thanks in advance.

There is no direct support for such a structure in C#. You have to use an integral type holding all the bits and extract the fields from it afterwards.

See the solution to a very similar problem at Bit fields in C#

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM