管理使用C#位打包数据
-
16-09-2019 - |
题
我在一个基于TCP的应用程序,其处理bitpacked消息,这意味着工作:发送的消息/接收不是字节对齐的。例如3位表示字段1,其中19个比特可以表示字段2.我的问题是,没有人知道,可以采取一组字节,组的C#库/获取这些字节内的位的任意范围?我已经看到在与C / C ++创建类似效用,但我需要一个100%的C#解决方案,我不想再次重新发明轮子。
我看的BitArray类,但它不允许用于参考的比特的任意范围。
解决方案
查核此CodeProject上溶液 - 它是一个开放源码的管理位流类从C#调用。
其他提示
我不知道任何BCL类你想要什么提供的。但是你可以使用按位操作(shift,与,或,...)中提取你感兴趣的领域。
例如,为了得到一个字段起始于位2与5位的大小的使用方法:
int extract = (source & 0x7C) >> 2;
不隶属于 StackOverflow