51单片机中我想把float类型转换为char[]数组。例如float a=1.1.转换为数组是char *b={49,47,49}

因为1.1表示成字符为{0x31,0x2e,0x39},最好能互相转换,。一个字符串数组str="12.3"转换为floata=12.3.最好有C程序,标准的C不能使用其... 因为1.1表示成字符为{0x31,0x2e,0x39},最好能互相转换,。一个字符串数组str="12.3"转换为float a=12.3.最好有C程序,标准的C不能使用其他函数。 展开
 我来答
shenrj2007
2011-03-21 · 超过10用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:20.3万
展开全部
1、不知道你是用来做什么的,可以采用sprintf()格式化函数将数据格式为字符串,如要将Float a=1.1转换,则设定一个数组tmp(3)
length=sprintf(tmp,"%1.1f",a)
这里length会等于3,tmp={0x31,0x2e,0x31}
2、对于字符串向float转换,可先将数字都取出,记住取出小数后字符的个数n,取出的结果除以10^n
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
303129231
2011-03-11 · 超过18用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:40.8万
展开全部
void change(uchar dat,char *str) //字符串转换
{
char temp[20];
unsigned char i=0,j=0;
i=0;
while(dat)
{
temp[i]=dat%10+0x30;
i++;
dat/=10;
}
j=i;
for(i=0;i<j;i++)
{
str[i]=temp[j-i-1];
}
if(!i) {str[i++]='0';}
str[i]=0;
}
追问
小数部分好像没转换吧,对浮点数取余数,小数点是取不出来的。不过还是谢谢参与。
追答
例如 12.3 你先转换12  再转换3  最后两个字符串相加 就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式