tmaolein
tmaolein
2016-07-11 07:53

qt二进制、十六进制数据转化为float

我在tcpsever接收数据,是二进制数据流,我用qbytearray接收,toHex转成十六进制存到qString了,之后其中的短整形用toUshort正常转换,但是浮点数使用toFloat就不行了,大神们谁有好方法,将十六进制qString转换成float或者还是用二进制的qbytearray直接转化为float?求教!!!
QByteArray a=socket->readAll();
QString b=a.left(1).toHex();//这是一个字节的整形
QString c=a.right(4).toHex();//这是四字节的浮点
bool ok;
usigned short day=b.toUShort(&ok,16);
float slope=c.toFloat(&ok);

输出时,day是正常整数,slope就是乱码了。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答