Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpIoBr 305 of 509 menu
◀ ▶

Двоичное чтение BinaryReader в C#

BinaryReader интерпретирует байты потока как числа и другие примитивы. Он учитывает порядок байт и сдвигает позицию на размер каждого прочитанного значения.

В паре с BinaryWriter объект чтения восстанавливает структуру пакета: сначала заголовок фиксированной ширины, затем полезная нагрузка. Так удобно разбирать бинарные протоколы без ручной арифметики смещений.

Запишем код версии как 16-битное число и прочитаем его с начала буфера. ReadUInt16 забирает два байта, младший первый. В буфер записано 0x0207, и чтение вернёт это число в десятичном виде:

using System.IO; using MemoryStream stream = new(); using (BinaryWriter writer = new(stream, System.Text.Encoding.UTF8, leaveOpen: true)) { writer.Write((ushort)0x0207); } stream.Position = 0; using BinaryReader reader = new(stream); Console.WriteLine(reader.ReadUInt16()); // выведет 519

В буфере лежат байты 0x15 и 0x00, младший байт первый. Прочитайте их как беззнаковое 16-битное число и выведите его в десятичном виде.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить