簡體   English   中英

使用C#管理位打包數據

[英]Managing bit packed data using C#

我正在研究一個基於TCP的應用程序來處理比特包消息,這意味着:發送/接收的消息不是字節對齊的。 例如,3比特表示字段1,其中19比特可以表示字段2.我的問題是,是否有人知道可以采用一組字節並在這些字節內設置/獲取任意比特范圍的C#庫? 我已經看到並在C / C ++中創建了類似的實用程序,但我需要一個100%的C#解決方案,我不想再次重新發明輪子。

我查看了BitArray類,但它不允許引用任意比特范圍。

查看此CodeProject解決方案 - 它是一個可從C#調用的開源托管BitStream類。

我不知道任何提供你想要的bcl類。 但是您可以使用按位運算(shift,和,或......)來提取您感興趣的字段。

例如,要獲得從第2位開始的大小為5位的字段,請使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM