看板 C_and_CPP 關於我們 聯絡資訊
看起來是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://www.ptt.cc/bbs/C_and_CPP/M.1533061388.A.F4C.html
cutekid: 推 08/01 02:31
djshen: 好像會有align問題 08/01 11:34
sarafciel: https://ideone.com/oh1H72 推 順便補個驗證的code 08/01 13:57