tmaolein
2016-07-11 07:53qt二进制、十六进制数据转化为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条回答
为你推荐
- Qt中使用QDataStream浮点数写入二进制文件中为什么不是4个字节,应该如何写?
- c++
- 1个回答
- QT中如何实现界面中的label实时显示变量数据?
- c语言
- 开发语言
- c++
- 2个回答
- Qt串口通讯QSerialport接受数据失帧问题
- qt 串口通信
- 2个回答
- qt解析复杂的json的方法或者辅助插件有没有
- json
- qt
- 数据
- 6个回答
- 将16进制数据写入结构体时,遇到double型出错
- sizeof
- qt
- 数据
- struct
- 2个回答
换一换