Re: [问题] 抱歉 再询问一次 c++强制转换

楼主: djshen (djshen)   2018-08-01 02:23:05
看起来是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
:
作者: cutekid (可爱小孩子)   2018-08-01 02:31:00
楼主: djshen (djshen)   2018-08-01 11:34:00
好像会有align问题
作者: sarafciel (Cattuz)   2018-08-01 13:57:00
https://ideone.com/oh1H72 推 顺便补个验证的code

Links booklink

Contact Us: admin [ a t ] ucptt.com