寫程序用到浮點轉換,找到網上的在線工具,瞭解浮點的存儲原理。最近正好開始練習QT,想着浮點轉換功能簡單易上手,就自己手擼一個,純當練習。
實名吐槽 QT
打包後的 exe
文件實在是太大了,使用打包工具 Enigma Virtual Box
生成的 exe
文件高達50M, 壓縮後也要 20M 。實在不好意思拿出手給別人使用。
代碼放在Github上,有需要可以參考
完成圖
進制轉換
浮點數據按照 IEEE-754
標準在內存中存儲,單精度4個字節,雙精度8個字節。
而浮點和 16、2 進制實際並沒有轉換, 只是針對內存數據的解釋方式不同而已,僞代碼如下:
int main ()
{
union {
uint32_t wValue;
float fValue;
} tUnionData;
tUnionData.wValue = 0x3dcccccd;
printf("%f", tUnionData.fValue);
// 輸出 0.100000
}
參考內容
- https://www.h-schmidt.net/FloatConverter/IEEE754.html