问题:使用QDataStream将大端序16进制数据41973333转换为浮点数时,输出结果为0,而使用memcpy结果为正常的18.9;
原因:QDataStream转换浮点数时,一定要指定单精度还是双精度,包括将浮点数转换为二进制数据时,也一样要指定。
解决方案:根据实际的数据指定是单精度还是双精度,stream.setFloatingPointPrecision(QDataStream::SinglePrecision); 或者 stream.setFloatingPointPrecision(QDataStream::DoublePrecision);