gpt4 book ai didi

c# - 将 byte[] 数组转换为长度减半的 short[] 数组

转载 作者:行者123 更新时间:2023-11-30 16:09:47 26 4
gpt4 key购买 nike

我有一个从文件中读取的 byte[200],代表小端格式的 short[100]。我是这样读的:

using (FileStream fs = new FileStream(_path, FileMode.Open, FileAccess.Read))
{
//fs.Seek(...)
byte[] record = new byte[200];
fs.Read(record, 0, record.Length);

short[] target = new short[100];
// magic operation that fills target array
}

“魔法操作”不知道放什么。我读过有关 BitConverter 的内容,但它似乎没有 BitConverter.ToShort 操作。无论如何,BitConverter 似乎在循环中进行转换,而如果可能的话,我希望有一些方法可以一次“ block 复制”整个数组。

最佳答案

认为您正在寻找Buffer.BlockCopy .

Buffer.BlockCopy(record, 0, target, 0, record.Length);

相信这将保留您所在架构的字节序 - 因此在某些环境中它可能不合适。您可能希望将其抽象为一个方法调用,该方法调用可以检查(一次)它是否执行您想要的操作(例如,通过转换 {0, 1} 并查看结果是 {1} 还是 {256}),然后使用 Buffer.BlockCopy 或在必要时在循环中“手动”执行。

关于c# - 将 byte[] 数组转换为长度减半的 short[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com