0

byte[]在 C# 中,如果我要从二进制文件中读取“3 个 32 位浮点数”作为 a Stream,我将如何提取 3 个小数?寻找代码来读取数据,然后提取 3 位小数。假设该文件仅包含“3 个 32 位浮点数”。

4

1 回答 1

3

使用BitConvert.ToSingle

// numbers to read
var count = 3; 

// read file bytes into a buffer
var buffer = new byte[sizeof(float) * count];
var stream = File.OpenRead("path/to/file");
stream.Read(buffer, 0, buffer.Length);
stream.Dispose();

var numbers = Enumerable
        .Range(0, count)
        // read 32 bits from buffer and convert to float
        .Select(index => BitConverter.ToSingle(buffer, index * sizeof(float)))
        .ToArray();
于 2012-08-05T11:12:03.503 回答