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
  • 95,331
  • 80
  • 293
  • 426
Mario The Spoon
  • 4,670
  • 1
  • 22
  • 34

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,800
  • 3
  • 42
  • 75