在工作中遇到一个问题,计算出了一个float类型的数据,然而和上位机的通信协议是按照字节一个个发送出去的。刚开始的想法是使用移位的方法,将float类型的数据存储到字符串数组中去。现在可以使用联合体将数据方便快速的转化为单个字节,从而发送出去。
定义一个联合体如下:
union energy_test{char separate[4];float i;}
void main()
{
char my_char[4];
int i;
union energy_test energy;//定义一个联合体energy
energy.i = 2.72;
for(i = 0;i<4;i++)
{
my_char[i]=energy.separate[i]
}
}
以上函数实现将float类型的数据赋给char数组。