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

时间:2014-02-20 12:44:57

标签: c# arrays byte bitwise-operators

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

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

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

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

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果你可以避免10.0除法,这将是最好的方法。这是整个过程中最慢的操作(到目前为止!)并且它不准确。如果你不关心损失,你可能会在乘以0.1而不是除以10.0时好多了,因为在大多数机器上乘法要快得多。