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

C# 将字节数组转换为双数组的最快方法(使用3字节整数),c#,arrays,byte,bitwise-operators,C#,Arrays,Byte,Bitwise Operators,我有一个从二进制文件读取的字节数组。目前,我使用类似的代码将每3个字节转换为一个双字节。目前,它可以从一次循环到数千次循环,以生成一个数据数组 Dataout=字节数组,FinalData=双数组 FinalData[a] = (double)(DataOut[a + k] << 16 | DataOut[a + k + 1] << 8 | DataOut[a + k + 2]) / 10.0; 我想知道的是,他们有没有更快的方法?可以使用LINQ或其他方法将整个字节数

我有一个从二进制文件读取的字节数组。目前,我使用类似的代码将每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,因为在大多数机器上乘法要快得多。

LINQ?你的意思是标记C吗?顺便说一句,林克不是魔术。你好,谢谢。我想念你。是的,我知道LINQ不是魔术,但我今天早上在搜索时看到了类似的方法,使用LINQ,但只对1值使用。需要用0除法,尽管你让我意识到我们可以将其保留,直到需要向用户显示为止。谢谢