質問

メッセージ送信/受信がバイトアラインされていません:

私は意味、bitpackedメッセージを処理するTCPベースのアプリケーションに取り組んでいます。たとえば、3ビットは19ビットがフィールド2を表すことができるフィールド1、私の質問があるを表し、誰もがC#のバイトのセットを取ることができ、ライブラリやセットを知っているん/それらのバイト内のビットの任意の範囲を取得しますか?私が見&C ++ / Cに似たユーティリティを作成したが、私は100%のC#ソリューションを必要とし、私は再び、ホイールを再発明する必要はありませんしました。

私はBitArrayクラスを見てきましたが、それはビットの任意の範囲を参照することはできません。

役に立ちましたか?

解決

このCodeProjectのソリューションをチェックアウト - それは、ビットストリームをオープンソース管理されていますC#のから呼び出し可能なクラスます。

他のヒント

私はあなたが望むものを提供任意のBCLのクラスを認識していませんよ。しかし、あなたは、あなたの興味のある分野を抽出するためにビット演算(シフト、および、または、...)を使用することができます。

は、例えば、5ビットのサイズとビット2から始まるフィールドを取得するために使用します。

int extract = (source & 0x7C) >> 2;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top