浮点型与字符型转换
统一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小时内删除。