[問題] Hex to float

看板C_and_CPP (C/C++)作者 (Sumsung)時間15年前 (2011/03/24 20:43), 編輯推噓2(2014)
留言16則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 目前在開發一個Hextofloat的函式, 找到資料如這裡 Code: MsgBox % HexToFloat(0x46EA6000) HexToFloat(d) { Return (1-2*(d>>31)) * (2**((d>>23 & 255)-127)) * (1+(d & 8388607)/8388608) ; 2**23 } Edit 20070215: shift is replaced with 2**, to handle small numbers 2**到底是代表什麼意思呢?另外,這個函式傳入是string嗎? 我一直查不到@@ 希望有高手可以幫我解答,謝謝! ================================================================== 謝謝大家的解答,我是希望可以將16進位轉成float的函式, EX:0x461C4800轉成float為10002 不過網路上一直搜尋不到相關資訊, 就只有這一個最像一點... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.15.76

03/24 20:44, , 1F
看起來不太像是C/C++
03/24 20:44, 1F

03/24 20:46, , 2F
**在python裡面是指數... % 也是python會用的語法
03/24 20:46, 2F

03/24 20:46, , 3F
**跟↑跟^都是次方,但是C/C++沒有次方
03/24 20:46, 3F

03/24 20:48, , 4F
抱歉~不知道這有沒有辦法改成C++呢
03/24 20:48, 4F

03/24 20:48, , 5F
你可以說明你需要的是怎麼樣的函式嗎?
03/24 20:48, 5F

03/24 20:49, , 6F
先謝謝大家
03/24 20:49, 6F
※ 編輯: sean79 來自: 111.255.15.76 (03/24 20:51)

03/24 20:54, , 7F
unsigned int a=0x461c4800;
03/24 20:54, 7F

03/24 20:54, , 8F
說明增加上去~
03/24 20:54, 8F

03/24 20:54, , 9F
double d = *(double*)&a;
03/24 20:54, 9F

03/24 20:54, , 10F
如果想要C++一點的話請用reinterpret_cast
03/24 20:54, 10F

03/24 20:54, , 11F
sorry..我是說float 請把double改成float XD
03/24 20:54, 11F

03/24 20:56, , 12F
可以了~~太厲害了~~謝謝p大和j大
03/24 20:56, 12F

03/24 21:14, , 13F
python 外行,但是python的函數好像要有def而且是用縮排
03/24 21:14, 13F

03/24 21:14, , 14F
好像沒在用 { } 大括號
03/24 21:14, 14F

03/24 21:31, , 15F
這我也不懂~~網路找的@@
03/24 21:31, 15F

03/25 00:16, , 16F
不用猜了, 原出處:http://goo.gl/xUQbP AutoHotkey XD
03/25 00:16, 16F
文章代碼(AID): #1DYpnhcU (C_and_CPP)
文章代碼(AID): #1DYpnhcU (C_and_CPP)