在C语言中,对数组{0x01,0x02,0x03}与4字节float数据102.03之间的相互转化如何实现呢?谢谢大家
3个回答
展开全部
先把十六进制转换为十进制,再用float类型输出,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
char ch[3]={0x1,0x2,0x3};
float f = ch[0]*100 + ch[1] + ch[2]*0.01;
printf("%.2f\n", f);
return 0;
}
int main()
{
char ch[3]={0x1,0x2,0x3};
float f = ch[0]*100 + ch[1] + ch[2]*0.01;
printf("%.2f\n", f);
return 0;
}
更多追问追答
追问
那把102.03转化为{0x01,0x02,0x03}呢?
追答
#include
#include
int main()
{
int ch[3];
float f=102.03;
char tmp[16];
int len;
sprintf(tmp, "%.2f", f); //先转成字符串
len=strlen(tmp);
if(len==6)
{
ch[0] = tmp[0]-'0';
ch[1] = (tmp[1]-'0')*10 + tmp[2]-'0';
ch[2] = (tmp[4]-'0')*10 + tmp[5]-'0';
}
else if(len==7)
{
ch[0] = (tmp[0]-'0')*10 + tmp[1]-'0';
ch[1] = (tmp[2]-'0')*10 + tmp[3]-'0';
ch[2] = (tmp[5]-'0')*10 + tmp[6]-'0';
}
printf("ch %d %d %d\n", ch[0], ch[1],ch[2]);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询