浮点数十六進制轉換器是一款比較使用的浮點數進制轉化工具,提供浮點數轉十六進制和進制互轉兩種方法,支持單精度和雙精度轉換,轉換速度快,准確度高,需要的朋友可以下載!
使用說明
计算机专业的学生和喜欢軟件逆向工程的爱好者都知道,浮点数在计算机内部是采用十六进制的方式存储的。采用的是ieee 二进位浮点数算术标准(ieee 754),为许多cpu 与浮点运算器所采用。而目前系统带的计算器却没有这个功能,所以写了这个小工具。另外也包括了10 进制16 进制互换的功能。
用十六進制表示浮點數的方法
在二進制文件中,存儲數據的格式爲16進制,
下面舉例說明27.0f在二進制文件中怎麽表示。
float
共計32位,折合4字節
由最高到最低位分別是第31、30、29、……、0位
31位是符號位,1表示該數爲負,0反之。
30-23位,一共8位是指數位。
22-0位,一共23位是尾數位。
每8位分爲一組,分成4組,分別是A組、B組、C組、D組。
每一組是一個字節,在內存中逆序存儲,即:DCBA
27.0表示成二進制爲:11011.0
用科學計數法表示爲1.110110*2^4,現在我們要的尾數和指數都出來了。
尾数为:1101 10 (删除前面的第一个1,因为用科学计数法表示,二进制中第一个永远都为1,计算机在存储的时候就没有存储这个1,只存储小数点后面的位数) 不足23位,补0,就是1011 0000 0000 0000 0000 000(23位)
指数:为4 。一共8位,可以表示范围是0 ~ 255的无符号整数,也可以表示-128~127的有符号整数。但因为指数是可以为负的,所以为了统一把十进制的整数化为二进制时,都先加上127。
所以:4+127=131 变成二进制就是10000011
27.0用二進制表示就是:
加上第31位的符號位0
就是0100 0001 1101 1000 0000 0000 0000 0000
十六进制就是:41 D8 00 00
再看一個數27.5,二進制爲11011.1
1.10111*2^4
尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000
指数:4,加上127,就是131,二进制1000 0011
用二进制表示就是 (符号数位1位)0 (指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000
写成二进制标准形式:0100 0001 1101 1100 0000 0000 0000 0000
写成16进制就是41 DC 00 00