0

一部の計算では Float を使用する必要がありますが、byte[] を自由に使用できるので、最初に次のようにします。

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

それはうまく機能します。float でいくつかの計算を行いますが、今度はそれを byteArray に変換する必要があります。次のコードを使用できません。具体的なエラー メッセージが表示されずにクラッシュします。

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

最初はサイズが問題だと思っていましたが、使用している float 配列は、テストのためにサイズを 500 増やしましたが、それでも同じエラーが発生しました

これを修正する方法を知っている人はいますか?できればC#で答えてください

4

3 に答える 3

4

linq を使用すると簡単です:

var byteArray = floatArray.Select(f => Convert.ToByte(f)).ToArray();
var floatArray = byteArray.Select(b => (float)Convert.ToDouble(b)).ToArray();
于 2012-12-13T15:43:49.350 に答える
2

もっと簡単な方法があります:

System.BitConverter.GetBytes(float)

MSDN

于 2012-12-13T15:44:23.127 に答える
-2

バイトは型内に収まるため、浮動小数点数に変換できますが、暗黙の変換では逆の変換はできません。浮動小数点数は大きすぎてバイトに収まらない可能性があるため、Array.Copyこのシナリオでは は機能しません。 .

于 2012-12-13T15:41:52.660 に答える