C#中float数组转byte[]问题。(300分)

  • 主题发起人 主题发起人 HunterTeam
  • 开始时间 开始时间
H

HunterTeam

Unregistered / Unconfirmed
GUEST, unregistred user!
已用下列方法将byte[]中的数据成功转到float[]中,现在的问题是怎么转回来
float[] floatData = new float[3000];
for (int i=0;i <2999;i++)
{
floatData = BitConverter.ToSingle(bBuffer,i*4);
}
转回来时,用如下代码,转得不对:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream m1 = new MemoryStream();
bf.Serialize(m1, myFloat);
byte[] result = m1.ToArray();

前帖http://www.delphibbs.com/delphibbs/dispq.asp?lid=3915161中,
qqjm说用BitConverter.GetBytes(),好象不行,1个float对四个byte,该如何转?
 
BitConverter.GetBytes()只有一个参数,不难用啊。
一个简单的测试:
--------------
float[] floatData = new float[30];

byte[] bBuffer = new byte[sizeof(float) * floatData.Length];
floatData[2] = 10000;
floatData[3] = 20000;
for (int i = 0;
i < floatData.Length;
i++)
{
byte[] tmp = BitConverter.GetBytes(floatData);
System.Buffer.BlockCopy(tmp, 0, bBuffer, i * sizeof(float), tmp.Length);
}
floatData[2] = 0;
floatData[3] = 0;

for (int i = 0;
i < floatData.Length ;
i++)
{
floatData = BitConverter.ToSingle(bBuffer, i * sizeof(float));
}

MessageBox.Show(floatData[2].ToString() +"|"+ floatData[3].ToString());
 
问题解决,多谢qqjm
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
551
import
I
后退
顶部