作者cbkcbk (C')
看板C_and_CPP
標題[問題] 有關浮點數轉16進位數的問題
時間Fri May 28 11:34:32 2010
( *[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
推 nowar100:把&f這個位置用int*去看他,再去* (dereference) 05/28 11:39
→ nowar100:他會把那 4byte 當成 int 在解讀 05/28 11:40
→ cbkcbk:請問int *是做什麼用的? 怎麼能看&f這個位置? 05/28 11:55
→ cbkcbk:dereference是作什麼用的? 4byte是指int的長度是吧? 05/28 11:56