float强转换成4字节数据

时间:2023-01-12 08:07:03
float数据是四字节的,把float放到一个char[4]中进行发送,接受后再强转成float,


转换了半天,没转成功,求助下。

int _tmain(int argc, _TCHAR* argv[])
{
float src = 10;
float dst = 0;
char szFloat[4];
memcpy(szFloat,&src,4);


printf(" %f \n",dst);

 
return 0;
}

就是想把 szFloat[4]; 转换成 dst.

4 个解决方案

#1


float src = 10;
char szFloat[4];
float *dst = (float*)szFloat;

memcpy(szFloat,&src,4);


printf(" %f \n",*dst);

#2


你代码里的szFolat和dst之间又没有任何的关系。两个各有各的内存空间。

#3


float src = 10;
float dst = 0;
char szFloat[4];
memcpy(szFloat,&src,4);
memcpy(&dst,szFloat,4);

printf(" %f \n",dst);

我呆了下~~散分了!

#4


float src = 10;
char szFloat[4];

memcpy(szFloat,&src,4);

printf(" %f \n",*((float*)szFloat));

输出时直接强转 szFloat

#1


float src = 10;
char szFloat[4];
float *dst = (float*)szFloat;

memcpy(szFloat,&src,4);


printf(" %f \n",*dst);

#2


你代码里的szFolat和dst之间又没有任何的关系。两个各有各的内存空间。

#3


float src = 10;
float dst = 0;
char szFloat[4];
memcpy(szFloat,&src,4);
memcpy(&dst,szFloat,4);

printf(" %f \n",dst);

我呆了下~~散分了!

#4


float src = 10;
char szFloat[4];

memcpy(szFloat,&src,4);

printf(" %f \n",*((float*)szFloat));

输出时直接强转 szFloat