看板 C_and_CPP 關於我們 聯絡資訊
我用了 gdb 看, f = 0xb6 0xf3 0x9d 0xbf f2 = 0xf4 0x9d 0x3f 0x4f 這兩個根本就不是同一個數字。 floate f2=-1.234 就好了, 為什麼要寫成 0xBF9DF3B6 再用 type cast? ※ 引述《Hao0228 (Hao0228)》之銘言: : 各位版大好...想請教一個問題 : 假設我想指定一個hex給一個float變數 : 比如說...0xBF9DF3B6 在float內是 -1.234 : 寫了一段測試的程式 : uint32_t i = 0xBF9DF3B6; : float f = *(float*)&i; : cout << f << endl; : float f2 = 0xBF9DF3B6; : cout << f2 << endl; : 執行結果 : f : -1.234 : f2 : 3.2148e+09 : 一直搞不太懂為什麼非得用float *轉型呢? : 還請各位版大能為小弟解惑...謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.251.79 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1476548724.A.648.html
pttworld: case2是IEEE754,可是問題是case1。 10/16 00:33