如何在C++中,讲float型数据转换成char数据

float型数据转换成char数组数据

//将float转为4byte数据
void Set_Float_TO_Buf(float val,unsigned char *buff)
{
            float xval;
            unsigned int  i;
            unsigned char *S;
            xval=val;
            S= ( unsigned char* )( &xval );
            for( i=0; i<4; i++ )  buff[i]=*(S+i);  
}

//将4byte数据转为float
float Get_Float_From_Buf(unsigned char *buff)
{
            float xval;
            unsigned int i;
            unsigned char *S;
            S= ( unsigned char* )( &xval );
            for(i=0;i<4;i++)  *(S+i)=*(buff+i);        
            return xval;
}

void Set_Float_TO_Buf(float val,unsigned char *buff)
{
          memcpy(buff,&val,sizeof(val));
}

float Get_Float_From_Buf(unsigned char *buff)
{
     float xval;
     memcpy(&xval,buff,sizeof(xval));
     return xval;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-17

很简单,用sprintf即可,看代码:

#include<bits/stdc++.h>
using namespace std;

int main(){
    float a;
    while(cin>>a){
        char s[100];
        sprintf(s,"%f",a);
        cout<<s<<endl;
    }
}

第2个回答  2010-11-05
貌似不太可以呢!char型占一个字节,float占4个字节。如果将超过char范围的float数据转换成char型,那么必然会丢失。
第3个回答  推荐于2016-11-03
char str[40];
float f=10323.323;
sprintf( str, "%f", f);本回答被提问者采纳
第4个回答  2010-11-05
float t;
(char)t;