tmaolein 2016-07-11 07:53 采纳率: 20%
浏览 6423

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条回答 默认 最新

  • tmaolein 2016-07-11 08:05
    关注

    重新走了一遍,发现乱码是中间汉字的问题,所有浮点数输出都是0,为什么?难道是大小尾端?

    评论

报告相同问题?

悬赏问题

  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算