2014-02-20 46 views
0

我有一个从二进制文件中读取的字节数组。目前,我将每3个字节转换为一个循环中使用类似代码(下面)的双精度型。目前它可以循环一次到几千次以产生一组数据。最快的方法将字节数组转换为双数组(使用3字节整数)

DATAOUT = Byte数组,FinalData的=双阵列

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

我想知道的是什么,是他们的任何方式更快做到这一点?也许可以使用LINQ或其他方法将整个字节数组传送到双数组中,而无需循环。我将始终需要移动一定数量的字节(本例中为3)。

非常感谢任何帮助

+0

LINQ?你是否想要标记C#?顺便说一句,LINQ并不神奇。 – harold

+0

你好,谢谢我错过打字。是的,我知道LINQ不是魔术,但是我在今天早上搜索时看到了类似的方法,它使用了LINQ,但仅用于1值。 – Das

回答

0

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

+0

除0之外是需要的,尽管您已经意识到我们可以保留它直到它需要显示给用户。谢谢! – Das

相关问题