永发信息网

keil软件下浮点型转换为字符串

答案:4  悬赏:30  手机版
解决时间 2021-03-31 00:55
把一个数组AIchnl[12]的值赋值给一个字符串(八个字符的中的二个pSFrame[6]和pSFrame[7])
pSFrame[6] = AIchnl[12]>>8;
pSFrame[7] = (AIchnl[12]);

但数组是浮点型,字符串是字符串型,在KEIL软件下,编译错误,请高手指点下,如何把数组转化成字符串类型,赋值给字符串中的第六个字条和第七个字符。
在线等,有不明白的地方可以在线问。
那好吧,我说清楚一点,首先一个数组AIchnl[12],其中里边是12个浮点型的数,也就是含有小数点。我现在要把这12个浮点型的数通过串口用12帧字符串发送出去,当i=0时发送AIchnl[0],共发送12次,而AIchnl[0]要放到第6和第7位,也就是pSFrame[6]和pSFrame[7],但因为字符串类型不一样,直接赋值pSFrame[6] = AIchnl[12]>>8;pSFrame[7] = (AIchnl[12]);会提示类型不一样,所以要先AIchnl[12]里的娄转化成字符型,保留一位有效数字!这样说你明白了吗?
最佳答案
你是不是想把浮点数输出成十进制表示的字符串?

浮点型的数据组成,你大概还没有弄明白吧。先弄明白,才能进行后续的计算。
全部回答
不需要转换啊,串口在内存中也是按照字节存储的。 一种方法,使用联合体 typedef union{ float fv; unsigned char bytes[4]; }FloatData; 串口发送的时候发送bytes
串口通信,是肯定不能直接用浮点型数据赋值通信的。如果照你要求保留一位有效数字,个人建议用以下方式通信: 1、将待发送数据乘10再强制转换为整数,如5.3x10=53,然后转换为字符串pSFrame[6]="5" ; pSFrame[7]="3" ; 就可以发送了。当然接收方接收到数据后需要除以10,才能得到正确数据。 2、按以上相同理论,其实只要你与接收方协定好通信协议,有正确而统一的编码、解码方式就可以,你这边不一定需要按具体数值发送。 3、浮点型数据的二进制表示方法:http://blog.csdn.net/chenyujing1234/article/details/7683635 按这个二进制代码通信也可以,只是同样,接收端也要知道如何解码。
你可以参考下: 4.234 如果要保留两位小数 unsigned int a=4.234*100; unsigned char s[5]; s[0]=a/100+0x30; s[1]='.' s[1]=a%100/10+0x30; s[2]=a%10+0x30;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
头发梳一次掉多少算正常
在字母旁边的小数字怎么打?
宝宝学站立的应该是什么时候的
深圳哪里有卖金永点歌机的?
小狗说明文100含举例子 列数字
买一辆2手的摩托车需要办什么手续?
广东新丰有什么好玩的景点
本人欲购买一辆车,价格在15万左右,注重省油
1994年属狗的找工作如何女性
用什么语言得到美女心
tda7851功放芯片应该配多大功率的喇叭
为资深书此卷的书的意思
索尼P112100CR(红)这款笔记本玩游戏可以么
铝粉和哪些物质发生反应,不是,三氧化二铝。
没有碧瑶和鬼王,其他都有,什么阵最强
推荐资讯
国产音乐播放器,山灵和飞傲哪一个好一些?
有没有法硕复试的前辈
山头斜照却相迎打三数字
请教 4灯小口高压条怎么接4灯大口灯管
高一新生军训被晒黑怎么办,不想黑啊!
㎡-4╱2m+㎡
比亚迪唐怎么打开车头盖
一杯水两个人喝好吗
小游戏有好几个角色 有的可以自己转有的可以
潍坊昌大集团总经理是谁啊?
南方九疑山苍梧这个词是什么意思
坐在公交车里被一切两半是什么电影
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?