4バイト(またはint32値、ビッグエンディアン)で表されるビットパターンからSystem.Single値(= IEEE 754「単精度」32ビット浮動小数点数)を構築する必要があります。.NETでビットパターンから浮動小数点を構築する方法は?
.NET/F#でどうすればいいですか?
4バイト(またはint32値、ビッグエンディアン)で表されるビットパターンからSystem.Single値(= IEEE 754「単精度」32ビット浮動小数点数)を構築する必要があります。.NETでビットパターンから浮動小数点を構築する方法は?
.NET/F#でどうすればいいですか?
あなたはバイト配列ににから行くためにBitConverterクラス
byte[] data = new byte[4];
float f = BitConverter.ToSingle(data, 0);
を使用してシングルにバイト配列を変えることができます:
int i = 1234;
byte[] data = BitConverter.GetBytes(i);
(私のコードは、C#であるが、私
ありがとう、マーク! BitConverter.ToSingleはリトルエンディアンなので、実際のF#コードは次のようになります。 float_of_int32_be(x:int32):float = float(System.BitConverter.ToSingle([k | for 0..3 do yield byte (x >>>(8 * k))|]、0)) – Sebastian
あなたはBuffer.BlockCopy
を使用することができます。
Assert.AreEqual(sizeof(float), sizeof(int));
int[] ints = ...
float[] result = new float[ints.Length];
Buffer.BlockCopy(ints, 0, result, 0, result.Length * sizeof(float));
result
配列はints
配列内のビットパターンで表現されているフロートが含まれています。 ints
配列内の各要素は、1つのfloatのビットパターンを表します。
より良いタイトルは「.NETでビットパターンから浮動小数点を構築する方法」でしょうか? – Sebastian