Laden...

[erledigt] Wirklich nur 1 bit schreiben

Erstellt von BangerzZ vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.483 Views
B
BangerzZ Themenstarter:in
45 Beiträge seit 2009
vor 13 Jahren
[erledigt] Wirklich nur 1 bit schreiben

Ich habe gerade festgestellt, das das selbste wenn ich einen BinaryWriter ein bool übergebe, er immer ein Byte benutzt um es in eine Datei zu schreiben. Gibt es unter.net eine Möglichkeit, wirklich nur 1 bit weise zu schreiben? oder muss ich sie immer zu bytes zusammen fassen?

5.299 Beiträge seit 2008
vor 13 Jahren

wie soll das gehen? angenommen eine Datei mit 2 bytes. Wie willst du da ein _bit _hinzufügen?

Was ist dein wirkliches Problem? ein kompaktes Dateiformat? optimale Speicherausnutzung?

Der frühe Apfel fängt den Wurm.

V
162 Beiträge seit 2010
vor 13 Jahren

Hm,

selbst eine Datenbank wie MSSQL 2000 speichert dort den Datentyp Bit in 1 Byts auf der Festplatte.
Dies ist sogar langsammer als wenn du einen Integer speicherst.
Wenn du 8 Spalten hast mit Bit, dann bleibt es auf der Festtplatte immer noch 1 Byte. Erst bei einer 9 Bit Spalte werden es 2 Byte. (Vor 10 Jahren war Festplattenspeicher noch richtig Teuer bei Servern: SCSI)

Also was für einen Grund hast du, daß du nur 1 Bit speichern willst.
Vorallem bedenke das es warscheinlich ist, das es langsammer ist, mit einem echten Bit, als mit einem Byte zu arbeiten.
Du must ja den Bit auch wieder in eine Bool Casten.

Ein BinaryWriter schreibt eben Byte weise. Du müstes einen ähnlichen Trick machen wie der MSSQL Server (siehe Oben).
Das würde sich lohnen vom Speicherplatz wenn du 8 Bits speichern willst.

MfG
Björn

Das Leben ist schön!

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo BangerzZ,

du kannst nur byte-weise schreiben. Wenn du mehrere Bits in ein Byte packen willst, verwende [Artikel] Bitoperationen in C#

herbivore

B
BangerzZ Themenstarter:in
45 Beiträge seit 2009
vor 13 Jahren

Es ging mir halt darum, dass ich ein bool[] habe, das ich bitweise schreiben will, um Daten zu Komprimieren.

Und 95.000.000 bytes zu schreiben anstatt 95.000.000 bits ist schon ein unterschied.

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo BangerzZ,

ja, schon klar. Eine passende Antwort hast du von mir bereits bekommen.

herbivore

B
BangerzZ Themenstarter:in
45 Beiträge seit 2009
vor 13 Jahren

Ich wollte das Bloß für die beiden über dir nochmal darstellen.

Und danke nochmal.