C#を使用してビットパックされたデータを管理します
-
16-09-2019 - |
質問
メッセージ送信/受信がバイトアラインされていません:
私は意味、bitpackedメッセージを処理するTCPベースのアプリケーションに取り組んでいます。たとえば、3ビットは19ビットがフィールド2を表すことができるフィールド1、私の質問があるを表し、誰もがC#のバイトのセットを取ることができ、ライブラリやセットを知っているん/それらのバイト内のビットの任意の範囲を取得しますか?私が見&C ++ / Cに似たユーティリティを作成したが、私は100%のC#ソリューションを必要とし、私は再び、ホイールを再発明する必要はありませんしました。
私はBitArrayクラスを見てきましたが、それはビットの任意の範囲を参照することはできません。
解決
このCodeProjectのソリューションをチェックアウト - それは、ビットストリームをオープンソース管理されていますC#のから呼び出し可能なクラスます。
他のヒント
私はあなたが望むものを提供任意のBCLのクラスを認識していませんよ。しかし、あなたは、あなたの興味のある分野を抽出するためにビット演算(シフト、および、または、...)を使用することができます。
は、例えば、5ビットのサイズとビット2から始まるフィールドを取得するために使用します。
int extract = (source & 0x7C) >> 2;
所属していません StackOverflow