1定义结构体
struct Double
{
double a;
double b;
};
int main()
{
unsigned char buf[]={0xf5,0xdd,0xd8,0xac,0x2d,0xf4,0x3e,0x40,0xf5,0xdd,0xd8,0xac,0x2d,0xf4,0x3e,0x40};
Double value;
memcpy(&value,(Double*)buf,16);
printf("value a %g\n",value.a);
printf("value b %g\n",value.b);
double* reslut = (double*)buf;
printf("reslut :%g\n",(*reslut));
return 0;
}
终端打印
value a 30.9538
value b 30.9538
reslut :30.9538
其中unsigned char buf 模拟报文二进制字节流,在字符数组中表现为16进制数据
其中字符数组是16个字节,结构体中有2个double类型,所以也是16字节。
然后利用内存字节对其方法,将字符串数组memcpy到结构体内存中。
每8个字节对应一个double成员,16字节对应2个double成员。
所以终端打印两个成员的数据是两个30.9538