浮点型与字符型转换
统一IEEE754标准
//32位数据转换为4个八位数据
void float2char(float f,unsigned char *s)//float 可改为任意32位数据,直接复制下来使用
{
unsigned char *p;
p = (unsigned char *)&f;
float()函数 *s=*p;
*(s+1)= *(p+1);
*(s+2)=*(p+2);
*(s+3)=*(p+3);
}
//4个八位数据转换为32位数据
float char2float(unsigned char *s)//不可修改
{
float i;
unsigned char *p;
p=(unsigned char *)&i;
*p=*s;
*(p+1)=*(s+1);
*(p+2)=*(s+2);
*(p+3)=*(s+3);
return i;
}
void floattest(void)//测试函数
{
float i=1.2345,k;//i为需转换的32位数据
char data[4],j;//data为4个8位数据
for(i=1.0;i<10.0;i+=0.0625)
{
float2char(i,&data[0]);//拆分数据
for(j=0;j<4;j++)
printf("data=%d \n",data[j]);
k=char2float(&data[0]);//整合数据
printf("k=%f \n",k);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论