将浮点型a转换为4个字符型c[4](可以通过串口发送),再转换为浮点型b
输出:123456.000000
#include "stdio.h"
main()
{
//float转char
float a = 123456;
float b = 0;
int i = 0;
char *pc = (char*)&a;
for(i=0; i<4; i++)
c[i] = *(pc+i);
//char转float
pc = c
b = *(float*)pc;
printf("%f", b);
}
自己使用总结:在float转char(UI中)之后,再char转回float(Firmware中)时,如果转回错误可以将char内4个byte的顺序颠倒一下,再char转float。
转自:http://wenku.baidu.com/link?url=P9BQPpaOEaDhFtbEoxYn12sqZJdpLZ2ya1UmQTaeDXf3gEsj51a0at9hLuiy475LdCgP7l4LXz0NhKIMgKOQuO67qrxVWBRpsJQAuqYURSK
另一篇文章:
浮点(FLOAT)转换为CHAR
float wTemp=3.3;
char sBuf[4];
char* temp;
memset(sBuf,0,sizeof(sBuf));
temp=(char*)(&wTemp);
sBuf[0] = temp[0] ;
sBuf[1] = temp[1];
sBuf[2] = temp[2];
sBuf[3] = temp[3];
CHAR转换为浮点(FLOAT)
char sBuf[4];
sBuf[0]=0x33;
sBuf[1]=0x33;
sBuf[2]=0x53;
sBuf[3]=0x40;
float *w=(float*)(&sBuf);
转自:http://blog.youkuaiyun.com/sijigang/article/details/1546117