16 bits verwenden, ansonsten das oberste Bit isolieren und 2 (bits) nach rechts schieben, den int16 Wert mit vierzehn gesetzten Bits (Maske) ver-und-en und das isolierte Bit 15 (=16.Bit=Vorzeichenbit), das bereits Bit 13 ist mit dem int16/int14 Wert ver-oder-n.
Um bitgenau in einen Filestream schreiben zu können, brauchst Du eine eigene Filestreamklasse, die die letzte Bitposition und das letzte Byte vorrätig hält als static Variable. Dann eben den int16 Wert übergeben, kopieren, die Kopie an die Bitposition des letzten gepufferten Bytes des Filestreams hängen (bitmäßiges ODER) sowie die zweite Hälfte (=1-2 Bytes, jedenfalls aus der Originalübergabevariable = der übergebene Parameter int16 bzw. int14) ebenso shiften und in den Filestreampuffer schreiben. Der Flush passiert dann sowieso, wenn ein Pufferüberlauf eintritt oder die Datei geschlossen wird.
Das ist das Einzige, was ich sehe, wie es funktionieren müßte.
|