作者s9642108 (sss)
看板C_and_CPP
标题[问题] 有关 short 转double 问题
时间Tue Jul 31 02:55:17 2018
开发平台(Platform): (Ex: Win10, Linux, ...)
QT 5.10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
qt creator4.5.1
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
short tempData[10];
*(int *)tempData = 1;
*(double *)&tempData[1]=100;
qDebug() << " " << tempData[0];
qDebug() << " " << tempData[1];
请问为什麽 转int结果是对的
但是double 却是0呢
c++新手 求各位帮帮我 感谢
其中qDebug 相当於 cout
预期的正确结果(Expected Output):
1
100
错误结果(Wrong Output):
1
0
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.35.154.241
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1532976920.A.C56.html
1F:嘘 Hazukashiine: 你 warning 有看了没? 07/31 04:14
2F:→ Hazukashiine: short* 硬转 double* 我不信编译器没报警告 07/31 04:15
3F:→ Hazukashiine: 转 int* 会对是 data model 设计的宽度一样而已 07/31 04:17
4F:推 wei115: ieee754 07/31 04:41
5F:→ MOONRAKER: 真有创意的转法。 07/31 15:34
6F:→ adrianshum: 转int会成功只是因为你在little endian 的平台吧。 bi 08/01 20:47
7F:→ adrianshum: g endian 会出现0 (不 core dump 的话) 08/01 20:47