開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
最近看到的題目
關於int與float的轉換問題
已知int為整數型態,float為浮點數,資料轉換會有遺失風險
宣告int放入16進位 0x7FFFFFFF
也就是10進位的2147483647
放入float型態後數值會+1
可是根據我對IEEE754的解釋
算出來的應該會是 2147483520 才對
另外一個疑問是
為什麼在main function
從float傳入到int變回 2147483647
但是pass by value傳入到function後
放入int型態和回傳都會是-2147483648
目前有從float浮點數運算,return架構去考量,但還是想不出原因
所以想要請教各位大大們
底下有完整程式碼及輸出可以參考
感激不盡
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://ideone.com/VXE1Hl