2011-02-09 85 views
1

我有一個類似這樣的方式定義的C結構:C#反序列化位域的二進制結構 - 怎麼做?

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

    uint value1; 
} TestStruct; 

我知道,我可以通過使用StructLayout屬性和Marshal.PtrToStructure()反序列化的二元結構。但有沒有辦法做到這一點與二進制字段,如結構中顯示的一個值只有2位長?

在此先感謝。

回答

1

在C#中沒有這種結構的直接支持。您必須使用一個整數類型來保存所有位,然後從中提取字段。

看到解決一個非常類似的問題在Bit fields in C#

+0

那麼不正是我一直在尋找,但沒有得到任何更好,因爲我已經用C#...由於現在看到的! – 2011-02-09 19:28:21