union U1
{
float bar;
char ch[4];
}DataBar;
DataBar.bar = 71.234;
QByteArray array(DataBar.ch, 4);
qDebug() << array.toHex();
在做工控机的时候,很多时候用到modbus协议,传输的数据也会用到float,double类型,可以采用上诉方法取出float每个字节,然后进行传输,在接收端可以这么写,这样可以有效避免传输出现数据差
union U1
{
float bar;
char ch[4];
}DataBar;
DataBar.ch[0] = buf[n];
DataBar.ch[1] = buf[n + 1];
DataBar.ch[2] = buf[n + 2];
DataBar.ch[3] = buf[n + 3];
qdebug() << DataBar.bar;