整型数组转换成浮点数

wxl0505 2008-05-14 04:15:39
谁帮我把
整型数组转换成浮点数
int data[8]={0x34,0x32,0x36,0x46,0x31,0x32,0x30,0x30}
转换成浮点数.
盼高手回复!~
...全文
706 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxl0505 2008-05-15
  • 打赏
  • 举报
回复
顶下,我的问题还没有搞懂,那个高手再帮下我啊!
wxl0505 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lixun_21 的回复:]
引用 12 楼 luck3359 的回复:
不可以用强制类型转换吗?
(float)data[8];
楼主data[]里面存的实际是数字字符的ASKII码
要先转成整形 的数字 4 2 6 F 0 0 0 0
4 2 6 F 0 0 0 0--> 426F0000(十六进制)-->?(十进制)
[/Quote]
是啊,我也是这个意思的啊!~
lixun_21 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 luck3359 的回复:]
不可以用强制类型转换吗?
(float)data[8];
[/Quote]楼主data[]里面存的实际是数字字符的ASKII码
要先转成整形 的数字 4 2 6 F 0 0 0 0
4 2 6 F 0 0 0 0--> 426F0000(十六进制)-->?(十进制)
ChikoHu 2008-05-14
  • 打赏
  • 举报
回复
不可以用强制类型转换吗?
(float)data[8];
wxl0505 2008-05-14
  • 打赏
  • 举报
回复
能不能帮我写点代码贴上来,谢谢了!!
Treazy 2008-05-14
  • 打赏
  • 举报
回复
先将数组转换成对应的0-F(16进制)

然后将这些转换后的数据分别传递给一个union中byte[4](该union中有byte[4]和float)

最后输出这个float

帅得不敢出门 2008-05-14
  • 打赏
  • 举报
回复

好比
{0x34, 0x32,0x36,0x46, 0x30,0x30,0x30,0x30};
->0100 0010 0110 1111 0000 0000 0000 0000

-> 1.110 1111 0000 0000 0000 0000小数点右移动5位
-> 1110 11.11 0000 0000 0000 0000->61.75


格式对清楚
Treazy 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxl0505 的回复:]
好好写下0x34在哪???

没明白你的意思

0x34,0x32,0x36,0x46,0x30,0x30,0x30,0x30->4 2 6 F 0 0 0 0

我的数据是以int data[8]保存的.
[/Quote]

你如果开始就这么写,大家就会好理解很多!
wxl0505 2008-05-14
  • 打赏
  • 举报
回复
好好写下0x34在哪???

没明白你的意思

0x34,0x32,0x36,0x46,0x30,0x30,0x30,0x30->4 2 6 F 0 0 0 0

我的数据是以int data[8]保存的.
帅得不敢出门 2008-05-14
  • 打赏
  • 举报
回复
看不懂
Treazy 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxl0505 的回复:]
我的意思是转换成一个浮点数,不是转换成浮点数数组的.
好比{0x34,0x32,0x36,0x46,0x30,0x30,0x30,0x30};
->0 10000100 11011110000000000000000
->1.11011110000000000000000小数点右移动5位
->111011.110000000000000000->61.75
[/Quote]

好好写下0x34在哪?
Treazy 2008-05-14
  • 打赏
  • 举报
回复
怎么转?
multibyte transformation or singlebyte transformation
shaohuaijian 2008-05-14
  • 打赏
  • 举报
回复
强制类型转换
(float)data[8]
wxl0505 2008-05-14
  • 打赏
  • 举报
回复
我的意思是转换成一个浮点数,不是转换成浮点数数组的.
好比{0x34,0x32,0x36,0x46,0x30,0x30,0x30,0x30};
->0 10000100 11011110000000000000000
->1.11011110000000000000000小数点右移动5位
->111011.110000000000000000->61.75
cugbliang 2008-05-14
  • 打赏
  • 举报
回复
#include <stdio.h>
int main ()
{
int data[8]={0x34,0x32,0x36,0x46,0x31,0x32,0x30,0x30};
float d[8];
for(int i=0;i<8;i++)
{
d[i]=data[i];
printf("%f\t",d[i]);
}
printf("\n");
return 1;
}

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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