1

次のような方法で定義されたC構造体があります。

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

    uint value1;
} TestStruct;

StructLayout属性とを使用して、バイナリ構造体を逆シリアル化できることを知っていますMarshal.PtrToStructure()。しかし、1つの値がわずか2ビット長である構造に示されているように、バイナリフィールドでこれを行う方法はありますか?

前もって感謝します。

4

1 に答える 1

1

C#ではこのような構造を直接サポートしていません。すべてのビットを保持する整数型を使用し、後でそこからフィールドを抽出する必要があります。

C#のビットフィールドで非常によく似た問題の解決策を参照してください

于 2011-02-09T19:16:09.260 に答える