浮點數(shù)十六進制轉換器(浮點數(shù)轉換成十六進制)是一款浮點數(shù)顯示轉換的小工具。提供浮點數(shù)轉換功能,單精度和雙精度都支持!可以顯示浮點數(shù)在內存地上單精度32位和倍精度64位的存儲16進制值,也可以對應有十六進制值強轉成浮點數(shù)。
使用說明:
計算機專業(yè)的學生和喜歡軟件逆向工程的愛好者都知道,浮點數(shù)在計算機內部是采用十六進制的方式存儲的。采用的是ieee 二進位浮點數(shù)算術標準(ieee 754),為許多cpu 與浮點運算器所采用。而目前系統(tǒng)帶的計算器卻沒有這個功能,所以寫了這個小工具。另外也包括了10 進制16 進制互換的功能。
用十六進制表示浮點數(shù)的方法
在二進制文件中,存儲數(shù)據(jù)的格式為16進制,
下面舉例說明27.0f在二進制文件中怎么表示。
float
共計32位,折合4字節(jié)
由最高到最低位分別是第31、30、29、……、0位
31位是符號位,1表示該數(shù)為負,0反之。
30-23位,一共8位是指數(shù)位。
22-0位,一共23位是尾數(shù)位。
每8位分為一組,分成4組,分別是A組、B組、C組、D組。
每一組是一個字節(jié),在內存中逆序存儲,即:DCBA
27.0表示成二進制為:11011.0
用科學計數(shù)法表示為1.110110*2^4,現(xiàn)在我們要的尾數(shù)和指數(shù)都出來了。
尾數(shù)為:1101 10 (刪除前面的第一個1,因為用科學計數(shù)法表示,二進制中第一個永遠都為1,計算機在存儲的時候就沒有存儲這個1,只存儲小數(shù)點后面的位數(shù)) 不足23位,補0,就是1011 0000 0000 0000 0000 000(23位)
指數(shù):為4 。一共8位,可以表示范圍是0 ~ 255的無符號整數(shù),也可以表示-128~127的有符號整數(shù)。但因為指數(shù)是可以為負的,所以為了統(tǒng)一把十進制的整數(shù)化為二進制時,都先加上127。
所以:4+127=131 變成二進制就是10000011
27.0用二進制表示就是:
加上第31位的符號位0
就是0100 0001 1101 1000 0000 0000 0000 0000
十六進制就是:41 D8 00 00
再看一個數(shù)27.5,二進制為11011.1
1.10111*2^4
尾數(shù)(小數(shù)點后的數(shù))10111,補夠23位 1011 1000 0000 0000 0000 000
指數(shù):4,加上127,就是131,二進制1000 0011
用二進制表示就是 (符號數(shù)位1位)0 (指數(shù)位8位)1000 0011 (尾數(shù)位23位)1011 1000 0000 0000 0000 000
寫成二進制標準形式:0100 0001 1101 1100 0000 0000 0000 0000
寫成16進制就是41 DC 00 00