10进制带小数点数值转16进制内存储器的换算方法求教

10进制带小数点数值转16进制内存的换算方法求教
如图
10进制带小数点数值转16进制内存储器的换算方法求教
我用Winhex查看某档案的内存,发现红圈里面的数值实际上显示为97.62%(红圈对上相同区域的数值为98.29%),这后面的3F有可能代表%或者是小数点吗?因为我看见每个有百分比数值的地方后面都会有个3F。。。
还有我不知道这种带百分比十进制的数值是怎样转换成16进制的。。
请大神详细教导谢谢!!
------解决思路----------------------
[root@localhost x]# cat x.c 
# include <stdio.h>

void show(unsigned char * p, int n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%hhx", p[i]);
    printf("\n");
}

int main()
{
    float a = .9762f;
    show(&a, sizeof(a));

    return 0;
}
[root@localhost x]# ./x 
3ee8793f

------解决思路----------------------
直接写个程序打开看一下,不嫌麻烦这样做
打开计算器 把上面的3F79EB38,转成二进制为
00111111011110011110101100111000
蓝的为符号,0为正数,8位指数为126,按标准要减去127,这里为-1,剩下为尾数,前面省略了1,现在要补上为
1.11110011110101100111000这是二进制小数,前面指数为-1,所以这个数最终为
0.111110011110101100111000,再次使用计算器把这个数算回来,倒数算回来,从最后一位开始,跳过0,遇到1,直接除2,下一位为1,就加上1,再除2,遇0就直接除,一直到没有1,计算器结果为 0.976245403289794921875
------解决思路----------------------
http://bbs.****.net/topics/390676437