背景
浮點數(shù)在計算機科學(xué)中是一種重要的數(shù)據(jù)類型,用于表示實數(shù)。其中,F(xiàn)P32和FP16是兩種常見的浮點數(shù)格式,分別占用32位和16位。
這兩種浮點數(shù)遵循IEEE 754浮點數(shù)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)規(guī)定了浮點數(shù)的表示和運算方式。每個浮點數(shù)由三個部分組成:符號位S、指數(shù)位E和尾數(shù)位M。
FP32的二進制表示為:SEEEEEEE_EMMMMMMM_MMMMMMMM MMMMMMMM;FP16的二進制表示為:SEEEEEMM _MMMMMMMM。
而二進制十進制和十六進制是我們在芯片設(shè)計和驗證時候直觀面對的數(shù)值進制。在設(shè)計浮點數(shù)運算單元或浮點數(shù)處理和轉(zhuǎn)換單元時,時常需要進行浮點數(shù)與進制數(shù)以及原碼補碼之間的各種轉(zhuǎn)換。
這個工具就是解決這個問題的,基于Python的struct模塊進行浮點數(shù)的轉(zhuǎn)換,基于int/bin/hex函數(shù)進行普通進制轉(zhuǎn)換。
工具使用
根目錄下有打包好的exe文件:
怎么說呢,這個logo基本代表了我的最高審美了。點開工具后就是這個界面了:
輸出格式就支持這么多種了,對應(yīng)的輸入少一些,不過也夠用了:
然后呢,選擇輸入格式后輸入對應(yīng)的數(shù)值(請正確輸入啊,我沒有做檢錯功能哈),然后點擊“確定”(不要用回車啊)就可以了。十進制下可以任意輸入數(shù)值(正數(shù)負數(shù)小數(shù)等),如果為浮點數(shù)則只有FP32和FP16會有反饋。其他進制不能有小數(shù),且不需要0b、0x的前綴:
結(jié)果校驗
源碼修改
如果需要修改源碼,可以在工程目錄下的src文件夾內(nèi)進行:
由上到下分別是圖形界面主程序、雜項函數(shù)和進制轉(zhuǎn)換函數(shù)。進制轉(zhuǎn)換函數(shù)全部為字符串輸入、字符串輸出:
f = float(i)
#old_h = hex(struct.unpack(' #old_h = str(old_h)[2:]
#第二種方式和第一種方式結(jié)果其實一樣的
packed_data = struct.pack('!e', f)
h = ''.join(format(byte, '02x') for byte in packed_data)
#return str(h)[2:]
return str(h)',>
程序生成
如果需要重新生成exe文件,可以在工程目錄下的exe文件夾內(nèi)雙擊install.bat文件執(zhí)行,然后把生成于dist目錄下的main.exe拷出來就可以了。
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8748瀏覽量
148136 -
二進制
+關(guān)注
關(guān)注
2文章
799瀏覽量
41766 -
浮點數(shù)
+關(guān)注
關(guān)注
0文章
61瀏覽量
15914 -
SRC
+關(guān)注
關(guān)注
0文章
61瀏覽量
18062 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85063
發(fā)布評論請先 登錄
相關(guān)推薦
labview里單精度浮點數(shù)和十六進制數(shù)如何相互轉(zhuǎn)換?
十進制浮點數(shù)怎么轉(zhuǎn)換成16進制
請問怎么將IEEE 754(32位十六進制)轉(zhuǎn)換為十進制浮點數(shù)?
如何將十六進制的浮點數(shù)轉(zhuǎn)換成十進制的浮點數(shù)?
數(shù)據(jù)轉(zhuǎn)換:十六進制與浮點數(shù)的互相轉(zhuǎn)換
浮點數(shù)的表示方法
![<b class='flag-5'>浮點數(shù)</b>的表示方法](https://file1.elecfans.com//web2/M00/A5/4F/wKgZomUMN9mALScLAAACIFGGUgU666.gif)
PIC單片機浮點數(shù)與十進制數(shù)轉(zhuǎn)換
![PIC單片機<b class='flag-5'>浮點數(shù)</b>與十<b class='flag-5'>進制</b>數(shù)<b class='flag-5'>轉(zhuǎn)換</b>](https://file1.elecfans.com//web2/M00/A6/42/wKgZomUMPI6AeHO8AAAO3S-4pKM276.gif)
浮點數(shù)十六進制轉(zhuǎn)換器應(yīng)用程序軟件免費下載
![<b class='flag-5'>浮點數(shù)十六進制</b><b class='flag-5'>轉(zhuǎn)換器</b>應(yīng)用程序軟件免費下載](https://file.elecfans.com/web1/M00/B9/E7/o4YBAF6UGGWAZxj7AAAswTVHvB0307.png)
浮點數(shù)在內(nèi)存中的存儲
![<b class='flag-5'>浮點數(shù)</b>在內(nèi)存中的存儲](https://file.elecfans.com/web1/M00/C7/6E/pIYBAF9mwtKAT_SQAAANPWGPVYw170.png)
解析python整數(shù)浮點數(shù)不同進制整數(shù)
PLC中浮點數(shù)的二進制表示
![PLC中<b class='flag-5'>浮點數(shù)</b>的二<b class='flag-5'>進制</b>表示](https://file.elecfans.com/web2/M00/9A/0E/poYBAGQb5zuALnXgAAMiWYowofI084.png)
評論