byte转换成float

fangshaoshen 2009-11-04 11:42:13
写了一个TCP通讯 程序传输数据 用一个byte[] date 接受到端口传过来的数据。
传过来的数据时float类型 , 请问我该如何通过byte 将它们重新组合成float类型 (假如date[0]-date[3] 为float 类型的四个byte)

我知道 int 可以通过 | 和 << 的方法组合
比如:
int i = (int)(date[0]<<24|date[1]<<16|date[2]<<8|date[3]);


我是这样转换float类型的
float i = (float)(date[0]<<24|date[1]<<16|date[2]<<8|date[3]);

可是这样转换好像是不对的。 在此请教各位大虾。 我该怎么转换成 float类型呢?
...全文
995 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyyyyyrr 2010-10-15
  • 打赏
  • 举报
回复
学习,学习学习
cheng_er 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qlzf11140820 的回复:]
  float  i  =  123.444F; 
  byte[]  bts  =  BitConverter.GetBytes(i);    //将float转换成字节数组 
  float  j  =  BitConverter.ToSingle(bts,0);  //从字节数组转换成float
[/Quote]
yyz985 2009-11-04
  • 打赏
  • 举报
回复
每种语言float的结构有差异
如果只是.net之间互相转换的话BitConvert就可以了
你妹的特盗不 2009-11-04
  • 打赏
  • 举报
回复


int ssr = 111;
byte[] date = System.Text.Encoding.ASCII.GetBytes(ssr.ToString().ToCharArray());
//下面这行 是你需要的
float d = float.Parse(System.Text.Encoding.ASCII.GetString(date));
MessageBox.Show( d.ToString());
xwdd129 2009-11-04
  • 打赏
  • 举报
回复
定义一个union,同时放入BYTE和float,按需要取出即可
MOmo400 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qlzf11140820 的回复:]
float  i  =  123.444F;
  byte[]  bts  =  BitConverter.GetBytes(i);    //将float转换成字节数组
  float  j  =  BitConverter.ToSingle(bts,0);  //从字节数组转换成float
[/Quote]

YES
qlzf11140820 2009-11-04
  • 打赏
  • 举报
回复
float i = 123.444F;
byte[] bts = BitConverter.GetBytes(i); //将float转换成字节数组
float j = BitConverter.ToSingle(bts,0); //从字节数组转换成float
fangshaoshen 2009-11-04
  • 打赏
  • 举报
回复
非常感谢

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧