Frage

Ich arbeite an einer TCP-basierten Anwendung, die bitpacked Nachrichten verarbeitet, das heißt: die Nachrichten gesendet / empfangen werden, nicht Byte ausgerichtet ist. Zum Beispiel 3 Bits repräsentiert Feld 1, wobei 19 Bit Feld 2. Meine Frage stellen kann, ist, jemand eines C # -Bibliothek weiß, dass eine Reihe von Bytes und Satz nehmen kann / eine beliebige Reihe von Bits in diesem Bytes bekommen? Ich habe gesehen, und erstellt Ähnliche Dienstprogramme in C / C ++, aber ich brauche eine 100% C # Lösung und ich will nicht wieder das Rad neu zu erfinden.

Ich habe an der BitArray Klasse aussieht, aber es erlaubt keine willkürlichen Bereiche von Bits für die Referenzierung.

War es hilfreich?

Lösung

Schauen Sie sich dieser Codeproject Lösung - es ist ein Open-Source-Managed BitStream Klasse aufrufbar von C #.

Andere Tipps

Ich bin nicht bekannt, dass bcl-Klassen, die das, was Sie wollen. Aber Sie können bitweise Operationen verwenden (Verschiebung, und, oder, ...), um die Felder von Ihrem Interesse zu extrahieren.

Zum Beispiel ein Feld bei Bit 2 mit einer Größe von 5 Bits beginnen zu bekommen verwenden:

int extract = (source & 0x7C) >> 2;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top