作者djshen (djshen)
看板C_and_CPP
标题Re: [问题] 抱歉 再询问一次 c++强制转换
时间Wed Aug 1 02:23:05 2018
看起来是little endian
※ 引述《s9642108 (sss)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: qt 5
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: qt creator
: 问题(Question):
: short tempData[100];
: double *i = (double*)tempData;
: *i=6;
double 6 binary长这样
01000000 00011000 00000000 00000000 00000000 00000000 00000000 00000000
在memory里 最大的byte放在後面
00000000 00000000 00000000 00000000 00000000 00000000 00011000 01000000
: int *j = (int*)&tempData[1];
: *j=6;
00000000 00000000 00000110 00000000 00000000 00000000 00011000 01000000
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
把6写到这四个byte
: qDebug() << " " << tempData[0];
00000000 00000000 00000110 00000000 00000000 00000000 00011000 01000000
^^^^^^^^^^^^^^^^^
print 0 (00000000 00000000)
: qDebug() << " " << tempData[1];
00000000 00000000 00000110 00000000 00000000 00000000 00011000 01000000
^^^^^^^^^^^^^^^^^
print 6 (00000000 00000110)
: 抱歉 请容许我在发问一次
: 主要是我想透过 指标改变不同类型的tempDate值,发送这个资料
: 我上网查 小转大的话 值应该是会一样的,可是强制转double 的值都是0
这里只有pointer转换 跟小转大没关系吧
有错请指教
: 编译的时候,也是没有警告
: 还是不太明白 希望能获得解答 谢谢
: 预期的正确结果(Expected Output):
: 6
: 6
: 错误结果(Wrong Output):
: 0
: 6
:
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.108.63
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1533061388.A.F4C.html
1F:推 cutekid: 推 08/01 02:31
2F:→ djshen: 好像会有align问题 08/01 11:34