1

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.

abatishchev
  • 98,240
  • 88
  • 296
  • 433
Mario The Spoon
  • 4,799
  • 1
  • 24
  • 36

1 Answers1

1

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#

Community
  • 1
  • 1
Mormegil
  • 7,955
  • 4
  • 42
  • 77