[問題] 有關浮點數轉16進位數的問題

看板C_and_CPP (C/C++)作者 (C')時間16年前 (2010/05/28 11:34), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) float f=3.141592; int i=*(int *)&f; 不了解*(int *)&f作了什麼 不了解轉換的原理 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Visual C++ 2008 Express 有問題的code: (請善用置底文標色功能) 補充說明: 沒看過這種用法 希望各位前輩指導 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.177.136

05/28 11:39, , 1F
把&f這個位置用int*去看他,再去* (dereference)
05/28 11:39, 1F

05/28 11:40, , 2F
他會把那 4byte 當成 int 在解讀
05/28 11:40, 2F

05/28 11:55, , 3F
請問int *是做什麼用的? 怎麼能看&f這個位置?
05/28 11:55, 3F

05/28 11:56, , 4F
dereference是作什麼用的? 4byte是指int的長度是吧?
05/28 11:56, 4F
文章代碼(AID): #1B_pdByP (C_and_CPP)
文章代碼(AID): #1B_pdByP (C_and_CPP)