求IEEE754基准下的16进制和10进制浮点数的相互转换方法

求IEEE754标准下的16进制和10进制浮点数的相互转换方法
如题,求IEEE754标准下16进制10进制浮点数的相互转换代码
要源码,形如      float convert(BYTE*)   和     BYTE* convert(float)

如convert(0.3) = “\x3E\x99\x99\x9A”    convert(“\x3E\x99\x99\x9A”) = 0.3
------解决方案--------------------
难道不是直接把那块内存当做整数处理,然后按照整数转换成16进制??
PS:
只有输入(其实是在文件中,或者键盘新敲入的数据),
输出(显示,打印)
以及C,C++语言中的浮点类型,或者整数类型常数,是10进制的(不全是).

内存中,任何数据,其实都是二进制。

------解决方案--------------------
   float类型在内存中占4个字节(32位),最高位用于表示符号;在剩下的31位中,从右向左了8位用于表示指数,其余用于表示尾数。如图:

同时: IEEE 规定, 在float中,当指数小于127时,为一个负指数,反之为一个整数。
因此, 自然就有了浮点数的内存布局。

例如: 10.625

符号位为: 0
指数为为: 3, 根据规定该值为正整数, 因此在内存中值属于 3 + 127
位数:         010101000000...(共23位)

三者拼接的结果为:01000001001010100000000000000000
转换成16进制数为0x412A0000;   

由于楼主返回的是Byte指针,该指针展示的是小端内存,用BYTE一一查看的话,结果应为 00 00 2A 41


double值跟float类似, 只不过指数为使用1023判断正负。 然后就是域长问题了。
------解决方案--------------------
这个需要手动转吗?内存里是什么数据,直接强转不久可以了
------解决方案--------------------
http://bbs.csdn.net/topics/390676437