[問題] 書上看到的例題 關於形態轉換

看板C_and_CPP (C/C++)作者 (呦厚厚)時間16年前 (2009/04/04 22:24), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
題目是 float a=3.14159; int b=(?)a; a=(?)b; 而最後 a 必須等於原本的3.14159 我完全無法理解 怎麼想都覺得 a 是 3 想請問大家 那兩個()裡的? 各該轉換為哪種形式 a 才會等於 3.14159 謝謝大家了 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.163.42

04/04 22:27, , 1F
目前想到的答案, 第一個?: int b= *((int*)&) a;
04/04 22:27, 1F

04/04 22:28, , 2F
第二個?: a= *((float*)&) b;
04/04 22:28, 2F

04/04 22:28, , 3F
b=(int&)a; a=(float&)b;
04/04 22:28, 3F

04/04 22:30, , 4F
另一組更直接: int b= (int)(& a); a= *(float*) b;
04/04 22:30, 4F

04/04 22:31, , 5F
不過上面那組遇到變數放在2G以上的位置就爛了, 雖然一般
04/04 22:31, 5F

04/04 22:31, , 6F
user的AP應該不會發生這個問題XD
04/04 22:31, 6F

04/04 22:38, , 7F
F大的答案好深奧Orz
04/04 22:38, 7F

04/04 22:40, , 8F
reference...吧
04/04 22:40, 8F

04/04 22:41, , 9F
簡單地說,不要讓slice發生就好
04/04 22:41, 9F

04/05 01:03, , 10F
這...實用嗎? 不過蠻好玩的就是了
04/05 01:03, 10F
文章代碼(AID): #19rsst1c (C_and_CPP)
文章代碼(AID): #19rsst1c (C_and_CPP)