对于某些计算,我需要使用Floats, 但是我有一个字节[],所以我先做:
Array.Copy(byteArray, floatArray, byteArray.Length);
这很好用,我在浮点数上做了一些计算。但现在我需要将它转换回byteArray。我无法使用以下代码,它会崩溃,而不会给出特定的错误消息。
float[] DiffernetfloatArray= new float[ byteArray];
Array.Copy(DiffernetfloatArray, byteArray, DiffernetfloatArray.Length);
首先我认为它的尺寸不合适,但是我使用的浮动数组,我将尺寸增加了500只是为了测试,仍然给了我同样的错误
有谁知道如何解决这个问题? 最好是C#中的答案
答案 0 :(得分:4)
使用linq更容易:
var byteArray = floatArray.Select(f => Convert.ToByte(f)).ToArray();
var floatArray = byteArray.Select(b => (float)Convert.ToDouble(b)).ToArray();
答案 1 :(得分:3)
答案 2 :(得分:-2)
一个字节可以转换为一个浮点数,因为它适合该类型,但是另一个方法不能通过隐式转换完成 - 浮点数可能太大而不适合一个字节,因此{{1在这种情况下永远不会起作用。