В настоящее время я работаю над разработкой MemoryStream
с использованием BinaryWriter
.Добавление одного бита в MemoryStream с использованием BinaryWriter
У меня есть несколько типов (например, тип данных) данных, которые я помещаю в MemoryStream один за другим.
и для динамичности мне нужно решить, нужно ли вставлять некоторые записи в MemoryStream или нет, и, читая этот MemoryStream, он должен читать соответственно.
, например предположим, я вставив учет доходов так формат записей должен быть:
byte sr_No; double grandTotal;
, но как и в большинстве случаев от sr_No будет находиться в строке, если выходным дням. , поэтому я не должен поместить sr_No в каждую запись. Вместо этого я планирую получить single bit
0 для sr_No отсутствует и 1 для даты.
поэтому в основном то, что я имею в виду иметь 1 бит, который будет отображаться, если наступающий байт (как sr_No является байт), содержащий sr_No или непосредственно GrandTotal (как sr_No была пропущена) как этот
sr_No нынешней ситуации :
1[1 byte of sr_No][4 bytes of grandTotal]
sr_No отсутствует ситуация:
0[4 bytes of grandTotal]
, но это невозможно, поэтому я могу сделать бит-мудрый переход на MemoryStream (возможно, также невозможно), чтобы иметь один бит-заголовок.
или может быть любым другим способом его достижения.
Могу ли я немного поразмыслить, как переключение ?? Я не очень понимаю. спасибо, кстати @Jon Skeet – Amit
@AmitNatural: Ну да, вы можете делать бит-сдвиги - но чего бы вы ожидали этого? Что побудило вас задать этот вопрос? –
моим основным требованием было добавить один бит, поскольку это невозможно. Мне нужно идти на работу вокруг решения. в моем точном коде есть значение ranged (0-255 [Я сделал этот диапазон, чтобы поместить его в байт, и я могу привести его в порядок до 0-127, 7 бит и сделать самый правый бит в том, что байт не используется для этого бита смещение работа.]). но, как я уже сказал, я не понимаю, возможно ли смещение бит на MemoryStream или нет! и если да, то как я могу его использовать – Amit