C# 用C语言管理位压缩数据#

C# 用C语言管理位压缩数据#,c#,bit-manipulation,bit-packing,C#,Bit Manipulation,Bit Packing,我正在开发一个基于TCP的应用程序,它处理位压缩消息,这意味着:发送/接收的消息不是字节对齐的。例如,3位表示字段1,其中19位可以表示字段2。我的问题是,有没有人知道一个C#库可以获取一组字节,并在这些字节内设置/获取任意范围的位?我在C/C++中看到并创建了类似的实用程序,但我需要一个100%的C#解决方案,我不想再次发明轮子 我看过BitArray类,但它不允许引用任意范围的位。我不知道有任何bcl类可以提供您想要的内容。但是您可以使用位操作(移位、和、或……)来提取您感兴趣的字段 例如,

我正在开发一个基于TCP的应用程序,它处理位压缩消息,这意味着:发送/接收的消息不是字节对齐的。例如,3位表示字段1,其中19位可以表示字段2。我的问题是,有没有人知道一个C#库可以获取一组字节,并在这些字节内设置/获取任意范围的位?我在C/C++中看到并创建了类似的实用程序,但我需要一个100%的C#解决方案,我不想再次发明轮子


我看过BitArray类,但它不允许引用任意范围的位。

我不知道有任何bcl类可以提供您想要的内容。但是您可以使用位操作(移位、和、或……)来提取您感兴趣的字段

例如,要获取从第2位开始、大小为5位的字段,请使用:

int extract = (source & 0x7C) >> 2;

检查-它是一个开源的托管流类,它可以从C++中调用。< /P>这是我在当前C++实现中使用的方法。我希望我不必将实现移植到C#,而可以使用第三方库。我对一些光滑的C#library感兴趣,以实现这一点。我只是不想再“重新发明轮子”。太好了。正是我想要的。