有32位16进制浮点数42 65 8e 31,对应的十进制浮点数为57.38886,如何将前者转换为后者呢?
兄弟 这个我昨天试了的 转不了 你试试?
@PKSEO_dudu:
float f = 57.38886F; byte[] buf = BitConverter.GetBytes(f);
string hexStr = HexEncoding.ToString(buf);
int discarded = 0; buf = HexEncoding.GetBytes(hexStr, out discarded);
float f2 = BitConverter.ToSingle(buf, 0);
@Launcher: 问题在于: float f = 57.38886F;
如何得到这个??? 16进制的
@PKSEO_dudu:
float f = 57.38886F; byte[] buf = BitConverter.GetBytes(f);
string hexStr = HexEncoding.ToString(buf); // 这不就是 16 进制的字符串吗?
运行结果是:31 8E 65 42
@Launcher: 呵呵呵 我是要反过来 通过16进制的:31 8E 65 42 得到十进制的:57.38886
兄弟 非常感谢您的耐心回答! 帮我帮到底吧! 谢谢
@PKSEO_dudu:
int discarded = 0;
string hexStr = "318E6542";
byte[] buf = HexEncoding.GetBytes(hexStr, out discarded);
float f = BitConverter.ToSingle(buf, 0);
我就搞不明白了,我写了段程序从 float 到 16 进制字符串,然后再从 16 进制字符串转换回 float,为什么你就看不明白,非要我把代码分开来写呢?
@Launcher: 兄弟 实在感谢您的耐心解答。非常非常感谢!
还想弱弱的问一下,解析出来的是这种值:5.849767E-11
这是什么情况?
@PKSEO_dudu: 浮点数的科学计数法,http://www.myexception.cn/c/1277754.html
@Launcher: 浮点数的高位到低位 低位到高位 解析后值不一样 这是怎么回事?
问的问题很初级,还望您见谅,麻烦您了?
@PKSEO_dudu: http://baike.baidu.com/view/1922338.htm
@Launcher: 兄弟能不能加我QQ:452957399一下
还有问题想请教你!好不? 谢谢
这个42 65 8e 31怎么看出来是浮点数
我用网上下载的工具 可以转换
但是没源码
@PKSEO_dudu: 你先把这个转成字节数组.然后将这个字节数据强制当成一个浮点数输出,看是什么结果.
4字节的浮点数应该float