字节[]浮点[]到字节[]

时间:2012-12-13 15:39:10

标签: c# type-conversion

对于某些计算,我需要使用Floats, 但是我有一个字节[],所以我先做:

Array.Copy(byteArray, floatArray, byteArray.Length);

这很好用,我在浮点数上做了一些计算。但现在我需要将它转换回byteArray。我无法使用以下代码,它会崩溃,而不会给出特定的错误消息。

float[] DiffernetfloatArray= new float[ byteArray];  
Array.Copy(DiffernetfloatArray, byteArray, DiffernetfloatArray.Length);

首先我认为它的尺寸不合适,但是我使用的浮动数组,我将尺寸增加了500只是为了测试,仍然给了我同样的错误

有谁知道如何解决这个问题? 最好是C#中的答案

3 个答案:

答案 0 :(得分:4)

使用linq更容易:

var byteArray = floatArray.Select(f => Convert.ToByte(f)).ToArray();
var floatArray = byteArray.Select(b => (float)Convert.ToDouble(b)).ToArray();

答案 1 :(得分:3)

有一种更简单的方法:

System.BitConverter.GetBytes(float)

MSDN

答案 2 :(得分:-2)

一个字节可以转换为一个浮点数,因为它适合该类型,但是另一个方法不能通过隐式转换完成 - 浮点数可能太大而不适合一个字节,因此{{1在这种情况下永远不会起作用。