C # десериализация двоичной структуры с битовыми полями - как это сделать? - PullRequest
1 голос
/ 09 февраля 2011

У меня есть структура C, которая определяется следующим образом:

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

    uint value1;
} TestStruct;

Я знаю, что могу десериализовать двоичную структуру, используя атрибут StructLayout и Marshal.PtrToStructure(). Но есть ли способ сделать это с двоичными полями, как показано в структуре, где одно значение имеет длину всего 2 бита?

Заранее спасибо.

1 Ответ

1 голос
/ 09 февраля 2011

В C # нет прямой поддержки такой структуры. Вы должны использовать целочисленный тип, содержащий все биты, и впоследствии извлечь из него поля.

См. Решение очень похожей проблемы в Битовые поля в C #

...