Derzeit arbeite ich an der Entwicklung einer MemoryStream
mit BinaryWriter
.Hinzufügen eines einzelnen Bits in MemoryStream mit BinaryWriter
Ich habe mehrere Arten (z. B. Datentyp) von Daten, die ich in MemoryStream eins nach dem anderen lege.
und aus Gründen der Dynamik muss ich entscheiden, ob einige Datensätze in MemoryStream eingefügt werden sollen oder nicht und beim Lesen dieses MemoryStream sollte es entsprechend lesen.
zum Beispiel nehme ich Aufzeichnungen Einkommen Einfügen so Format von Aufzeichnungen sollte:
byte sr_No; double grandTotal;
aber wie in den meisten Fällen aus der sr_No in einer Reihe sein wird, es sei denn, holydays. also sollte ich keinen sr_no Teil von jedem Datensatz setzen. Stattdessen plane ich für eine single bit
0 für sr_Nr abwesend und 1 für das Datum vorhanden.
also im Grunde, was ich denke einen 1-Bit haben, wenn kommende Byte zeigen (wie sr_No Byte) ist enthalten sr_No oder direkt Grandtotal (als sr_No übersprungenen gewesen) wie diese
sr_No gegenwärtigen Situation :
1[1 byte of sr_No][4 bytes of grandTotal]
sr_No abwesend Situation:
0[4 bytes of grandTotal]
aber es ist nicht möglich, also kann ich bitweises Verschieben auf MemoryStream (möglicherweise auch nicht möglich) machen, um einen Bit-Header zu haben.
oder es kann eine andere Möglichkeit, dies zu erreichen.
kann ich ein bisschen weise Operation wie Verschiebung? Ich bin nicht sehr klar. Danke @ @ Jon Skeet – Amit
@AmitNatural: Nun ja, Sie können Bit-Shifting tun - aber was würden Sie erwarten, dass zu erreichen? Was hat Sie dazu veranlasst, diese Frage zu stellen? –
meine Grundvoraussetzung war, ein einzelnes Bit hinzuzufügen, da es nicht möglich ist, dass ich für die Lösung der Arbeit gehen muss. In meinem genauen Code gibt es einen Wertebereich (0-255 [Ich habe diesen Bereich so eingestellt, dass er in ein Byte passt, und ich kann ihn auf 0-127, 7 Bit Nummer und das rechte Bit in diesem für dieses Bit unbenutzten Byte richten Schaltvorgang.]). Aber wie gesagt, ich bin mir nicht sicher, ob Bitverschiebung auf MemoryStream möglich ist oder nicht! und wenn ja, wie kann ich es verwenden – Amit