Bit field auslesen
-
Hallo zusammen,
in meinem aktuellen C++/ClI Projekt habe ich in einem unmanaged Bereich folgende Struktur übernommen:
struct TPunkte { unsigned P1 : 2; unsigned P2 : 2; unsigned P3 : 2; unsigned P4 : 2; unsigned P5 : 2; unsigned P6 : 2; unsigned P7 : 2; unsigned P8 : 2; unsigned P9 : 2; unsigned P10 : 2; unsigned P11 : 2; unsigned P12 : 2; unsigned P13 : 2; unsigned P14 : 2; unsigned P15 : 2; unsigned P16 : 2; unsigned P17 : 2; unsigned P18 : 2; unsigned Pdummy : 4; };TPunkte
Diese Struktur findet sich sehr oft in einer .DAT-Datei wieder, die ich mit einem BinaryReader auslese. Die Struktur wurde von einem alten Konsolen-Programm übernommen, bei dem man 18 Punkte mit einem Wert belegen konnte (entweder A, B, oder nichts).
Diese Information ist nun in der Dat-Datei gespeichert und ich möchte diese Info mit meinem C++.Net Programm auslesen. Nur ist die Frage, wie ich diese Werte auslesen kann. so wie ich es gelesen habe, habe ich in .net als kleinsten Datentyp das "char" mit 1 Byte Größe. Wie kann ich jedoch an die Informationen gelangen, die in 2 Bit gekaselt sind? Ich habe keine Idee und bin auf Eure Hilfe angewiesen!
Vielen Dank für eure Hilfe!!
Gruß
-
Einen Wert einlesen, dann maskieren.
-
Hallo theta,
könntest du mir vll ein Beispiel zeigen, was du genau damit meinst?
zur Zeit lese ich die Werte folgenderweiße in ein Byte-Array ein... nur weiß ich leider nicht damit anzufangenarray<Byte>^ PunkteArray = binaryArray->ReadBytes(6);
Als Ergebnis wird mir dann angezeigt:
[0]: 1
[1]: 0
[2]: 0
[3]: 0
[4]: 8
[5]: 0Wie kann ich das jetzt maskieren?
Viele Dank!
Gruß