Ich habe das Lesen SWF format auf der Adobe-Website zur Verfügung und es wird erwähnt, dass Raum, um zu sparen, werden variable Bits zum Speichern von ganzen Zahlen oder Schwimmern verwendet (Seite 17 im pdf)Lesen Bit-ausgerichteten Daten
Ich habe hat immer mit Byte-ausgerichteten Daten gearbeitet, so dass man sich keine Gedanken über Dateien gemacht hat, die Bit-ausgerichtet sind oder eine variable Ausrichtung haben, bei der die Information in jedem Byte gespeichert wird.
So haben Sie zum Beispiel eine Struktur, die vier 13-Bit-Ganzzahlen sequenziell gespeichert (anstatt sie als vier 16-Bit-Ganzzahlen speichern).
Die ersten 13 Bit sind die erste Ganzzahl, die nächsten 13 Bit sind die zweite Ganzzahl und so weiter. Er puffert das letzte Byte, das geeignet ist, um die Struct-Byte-Ausrichtung mit dem Rest der Datei auszurichten, so dass 52 Bits zu 56 Bits aufgefüllt werden würden, was 7 Bytes erfordert, um diese vier ganzen Zahlen im Gegensatz zu 8 Bytes zu speichern.
- Wie gehe ich an diese Art von Problem heran?
- Wie kann ich mit einem Strom von Bytes auf der Bit-Ebene arbeiten?
- Kann ich etwas verwenden, um die Arbeit mit diesen Daten zu erleichtern?
Ich stelle mir vor, die Lösung läuft auf die Verwendung von Bit-Operationen auf Byte-Arrays.
Eine Beispiellösung zum Analysieren der vier 13-Bit-Ganzzahlen wäre auch gut, um die Verwendung Ihrer vorgeschlagenen Methode zu demonstrieren.
..wenn ich kann nicht geben Sie eine vollständige Antwort, vielleicht zeigt Ihnen zumindest auf BitArray helfen :) –
In der Regel hält der Ansatz einen Puffer von Bits in einem Uint oder ulong, Extrahieren, was Sie brauchen und Verschieben eines neuen Eingangsbytes, wenn nicht genügend Bits im Puffer vorhanden sind. – harold