Re: [問題] 二進制的浮點數轉回十進位
※ 引述《blueblueChen (藍藍欠)》之銘言:
: 最近有需要,發現網路上都沒有這資訊,只有些操作頁面,直接告訴你答案
: 想要把他寫下來成為自己的 C library
: 12.625 => 1100.101 = 1.100101 × 2^3 --> 我如果從下面反推到這一步,我該怎麼
: 知道 (1).100101,最前面為1?
: .. 因為最下面的十六進位,只有顯示出小數
: 點之後阿
: ..
: 1100 0001 0100 1010 0000 0000 0000 0000
: C14A0000
: 這是將十進制的浮點數轉成十六進制,我現在要反推回去求回浮點數
: 在 第一條式子,12.625 => 1100.101 = 1.100101 × 2^3
: 我突然卡住,不知道該怎麼將 (0.101)2 轉回 (0.625)10
: 有先進提點一下嗎? 謝謝。
在網路上有看到一個範例
int i = 0xbf200000;
float f = *(float *)&i;
printf("%f\n",f); //印出 -0.625
這跟我 int i = 0xbf200000
float f = (float) i; //印出很小的負數字.000
有啥差別阿....
前面是將指向i的位址強制轉換成 float 的
後者是將 i 值強制轉換成 float 的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.110.28
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1469259577.A.383.html
推
07/23 15:49, , 1F
07/23 15:49, 1F
→
07/23 15:52, , 2F
07/23 15:52, 2F
→
07/23 15:52, , 3F
07/23 15:52, 3F
推
07/23 16:04, , 4F
07/23 16:04, 4F
推
07/23 16:11, , 5F
07/23 16:11, 5F
→
07/23 16:13, , 6F
07/23 16:13, 6F
→
07/23 16:16, , 7F
07/23 16:16, 7F
推
07/23 16:23, , 8F
07/23 16:23, 8F
→
07/23 16:23, , 9F
07/23 16:23, 9F
→
07/23 16:23, , 10F
07/23 16:23, 10F
→
07/23 16:26, , 11F
07/23 16:26, 11F
→
07/23 17:09, , 12F
07/23 17:09, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):