首页 新闻 会员 周边

C# 16进制转换为浮点数

1
悬赏园豆:5 [已解决问题] 解决于 2014-03-27 17:53

有32位16进制浮点数42 65 8e 31,对应的十进制浮点数为57.38886,如何将前者转换为后者呢?

PKSEO_dudu的主页 PKSEO_dudu | 初学一级 | 园豆:9
提问于:2014-03-27 11:58
< >
分享
最佳答案
0
收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2014-03-27 13:29

 兄弟  这个我昨天试了的  转不了  你试试?

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 13:47

@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 | 园豆:45045 (高人七级) | 2014-03-27 13:58

@Launcher: 问题在于: float f = 57.38886F;  

如何得到这个??? 16进制的

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 14:01

@PKSEO_dudu: 

float f = 57.38886F;             byte[] buf = BitConverter.GetBytes(f);

string hexStr = HexEncoding.ToString(buf); // 这不就是 16 进制的字符串吗?

运行结果是:31 8E 65 42

Launcher | 园豆:45045 (高人七级) | 2014-03-27 14:06

@Launcher: 呵呵呵   我是要反过来  通过16进制的:31 8E 65 42 得到十进制的:57.38886
兄弟  非常感谢您的耐心回答! 帮我帮到底吧! 谢谢

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 14:08

@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 | 园豆:45045 (高人七级) | 2014-03-27 14:11

@Launcher: 兄弟  实在感谢您的耐心解答。非常非常感谢!

还想弱弱的问一下,解析出来的是这种值:5.849767E-11
这是什么情况?

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 14:19

@PKSEO_dudu: 浮点数的科学计数法,http://www.myexception.cn/c/1277754.html

Launcher | 园豆:45045 (高人七级) | 2014-03-27 14:23

@Launcher: 浮点数的高位到低位  低位到高位  解析后值不一样 这是怎么回事?

问的问题很初级,还望您见谅,麻烦您了?

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 15:07
Launcher | 园豆:45045 (高人七级) | 2014-03-27 15:07

@Launcher: 兄弟能不能加我QQ:452957399一下
还有问题想请教你!好不? 谢谢

PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 17:10
其他回答(1)
0

这个42 65 8e 31怎么看出来是浮点数

吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 12:33

我用网上下载的工具 可以转换

但是没源码

支持(0) 反对(0) PKSEO_dudu | 园豆:9 (初学一级) | 2014-03-27 12:59

@PKSEO_dudu: 你先把这个转成字节数组.然后将这个字节数据强制当成一个浮点数输出,看是什么结果.

4字节的浮点数应该float

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 13:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册