背景
浮點數(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的二進(jìn)制表示為:SEEEEEEE_EMMMMMMM_MMMMMMMM MMMMMMMM;FP16的二進(jìn)制表示為:SEEEEEMM _MMMMMMMM。
而二進(jìn)制十進(jìn)制和十六進(jìn)制是我們在芯片設(shè)計和驗證時候直觀面對的數(shù)值進(jìn)制。在設(shè)計浮點數(shù)運算單元或浮點數(shù)處理和轉(zhuǎn)換單元時,時常需要進(jìn)行浮點數(shù)與進(jìn)制數(shù)以及原碼補碼之間的各種轉(zhuǎn)換。
這個工具就是解決這個問題的,基于Python的struct模塊進(jìn)行浮點數(shù)的轉(zhuǎn)換,基于int/bin/hex函數(shù)進(jìn)行普通進(jìn)制轉(zhuǎn)換。
工具使用
根目錄下有打包好的exe文件:
怎么說呢,這個logo基本代表了我的最高審美了。點開工具后就是這個界面了:
輸出格式就支持這么多種了,對應(yīng)的輸入少一些,不過也夠用了:
然后呢,選擇輸入格式后輸入對應(yīng)的數(shù)值(請正確輸入啊,我沒有做檢錯功能哈),然后點擊“確定”(不要用回車?。┚涂梢粤?。十進(jìn)制下可以任意輸入數(shù)值(正數(shù)負(fù)數(shù)小數(shù)等),如果為浮點數(shù)則只有FP32和FP16會有反饋。其他進(jìn)制不能有小數(shù),且不需要0b、0x的前綴:
結(jié)果校驗
源碼修改
如果需要修改源碼,可以在工程目錄下的src文件夾內(nèi)進(jìn)行:
由上到下分別是圖形界面主程序、雜項函數(shù)和進(jìn)制轉(zhuǎn)換函數(shù)。進(jìn)制轉(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文章
8980瀏覽量
151019 -
二進(jìn)制
+關(guān)注
關(guān)注
2文章
805瀏覽量
42193 -
浮點數(shù)
+關(guān)注
關(guān)注
0文章
61瀏覽量
16093 -
SRC
+關(guān)注
關(guān)注
0文章
61瀏覽量
18343 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86347
發(fā)布評論請先 登錄
labview里單精度浮點數(shù)和十六進(jìn)制數(shù)如何相互轉(zhuǎn)換?
十進(jìn)制浮點數(shù)怎么轉(zhuǎn)換成16進(jìn)制
請問怎么將IEEE 754(32位十六進(jìn)制)轉(zhuǎn)換為十進(jìn)制浮點數(shù)?
如何將十六進(jìn)制的浮點數(shù)轉(zhuǎn)換成十進(jìn)制的浮點數(shù)?
數(shù)據(jù)轉(zhuǎn)換:十六進(jìn)制與浮點數(shù)的互相轉(zhuǎn)換
浮點數(shù)的表示方法

PIC單片機浮點數(shù)與十進(jìn)制數(shù)轉(zhuǎn)換

浮點數(shù)十六進(jìn)制轉(zhuǎn)換器應(yīng)用程序軟件免費下載

浮點數(shù)在內(nèi)存中的存儲

解析python整數(shù)浮點數(shù)不同進(jìn)制整數(shù)
PLC中浮點數(shù)的二進(jìn)制表示

評論