Bitsequenzen in Datei schreiben

smallone

Mitglied
Hallo zusammen,

für eine Anwendung mit digitalem Signalprozessor möchte ich verschieden lange binäre Sequenzen in eine Datei schreiben.

Eine Möglichkeit wäre, dies über die Hexcodierung der Ascii-Tabelle zu machen, allerdings ist die Länge meiner Bitsequenzen nicht immer ein ganzzahliges Vielfaches von 8 (ein ASCII-Zeichen = 1 Byte).

Meine Frage: Wie kann ich also zum Beispiel den Bitzug 11000001111 mit seinen 11 Stellen in eine Binärdatei umwandeln, sodaß mein DSP tatsächlich 11 Highs und Lows im Speicher vorfindet ?

Der Bitzug wird zuvor aus einer Variablen vom Typ double ermittelt, vielleicht kennt aber auch jemand einen direkteren Weg von "double" in die Binärdarstellung...

Aus der GNU C-Libary habe ich folgende Funktion, die auch funktioniert (mit einem Zeichen getestet)...

Code:
	char BinarySequence[LENGTH] = {0x5C};  // Ascii- Zeichen "\"

	fpout = fopen( "BinaryOut.bin", "wb");
	if ( !fpout)
	{
		printf( "Error opening file %s.\n", tmpfile);
		exit(-1);
	}
	fwrite( BinarySequence, LENGTH, 1, fpout);
	fclose( fpout);



Vielen Dank,
Grüße Ben
 
Zuletzt bearbeitet:
Hi.
smallone hat gesagt.:
Meine Frage: Wie kann ich also zum Beispiel den Bitzug 11000001111 mit seinen 11 Stellen in eine Binärdatei umwandeln, sodaß mein DSP tatsächlich 11 Highs und Lows im Speicher vorfindet ?
Das geht nicht. Du kannst nicht in eine Datei nur irgendwie ein halbes oder 3/8 Byte schreiben. Du kannst höchstens deine Bitfolge als String in die Datei schreiben wobei dann jedes Bit ein Byte belegt (klingt komisch - is' aber so ;-))

Evtl. würde jemand besser helfen können wenn du mal deine Umgebung und das Problem näher beschreibst.

Gruß
 
Hallo,

gerne, hier ein ganz konkretes Beispiel zu meiner Aufgabe:

Mittels DSP wird auf eine Trägerfrequenz eine Information aufmoduliert.
Diese Information habe ich in meinem Programm berechnet und sie liegt als double - Wert vor.

Diesen double-Wert wandle ich in ein von der Hardwareseite fest definiertes Binärformat um, dabei kommen aber verschieden lange Bitsequenzen vor, z.B. 11 oder 17 Stellen.
(siehe mein erstes Posting)

Nun muß ich meine Bitsequenz eindeutig (und PC-Hardware-unabhängig) in den Speicher der digitalen Signalverarbeitung bekommen.

Wer hat dazu eine gute Idee ?
Mein Ansatz war es über eine rein binär beschriebene Datei zu machen, wie aber kann ich 17 oder 11 Bits in eine Datei schreiben ? Hexwerte sind doch immer ein vielfaches von einem Byte...

Danke, Gruß BEN
 
Zuletzt bearbeitet:
Zurück