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

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 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置