Я пытаюсь прочитать конкретный двоичный файл, но он содержит 3-байтовые целые числа с прямым порядком байтов.Я недавно сталкивался с Mono DataConvert , что должно быть хорошо для большинства того, что я хочу, за исключением этих 3-байтовых целых чисел.Я не уверен, как их читать.Обратите внимание, что мне не нужно хранить их как 3-байтовые целые числа, чтение их в обычном Int32
было бы идеальным.Я читаю большую часть данных, поэтому я ищу что-то эффективное.Любые предложения?
Пример идеального кода:
public Region(string regionFile)
{
var conv = DataConverter.BigEndian;
var chunks = new Chunk[Chunk.MaxLocations];
using (var fs = File.OpenRead(regionFile))
{
var buffer = new byte[4096];
fs.Read(buffer, 0, buffer.Length);
// Read chunk locations
for (int i = 0; i < Chunk.MaxLocations; ++i)
{
chunks[i] = new Chunk(conv.ToInt24(buffer, i * 4), buffer[i * 4 + 3]);
}
}
}
Я хочу сделать что-то подобное, кроме conv.ToInt24
не существует.Я думаю, я мог бы написать свой, сдвигая биты ...