将字节数组转换为双数组的最快方法(使用3字节整数)



我有一个从二进制文件读取的字节数组。目前,我在循环中使用类似的代码(如下)将每3个字节转换为一个双字节。目前,它可以循环一到几千次来生成一个数据数组。

Dataout=字节数组,FinalData=双数组

FinalData[a] = (double)(DataOut[a + k] << 16 | DataOut[a + k + 1] << 8 | DataOut[a + k + 2]) / 10.0;

我想知道的是,他们有更快的方法吗?可以使用LINQ或其他方法将整个字节数组转移到双数组中,而无需循环。我总是需要移动一定数量的字节(本例中为3)。

非常感谢任何帮助

如果可以避免除以10.0,那将是最好的方法。这既是整个过程中最慢的操作(到目前为止!),也是不精确的。如果你不在乎损失,你可能会更好地乘以0.1,而不是除以10.0,因为在大多数机器上乘法要快得多。

最新更新