首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

IEEE32浮点数转十进制小数解决思路

2012-08-14 
IEEE32浮点数转十进制小数比如:0x48A969C0变为32位二进制数:01001000101010010110100111000000其中最高位

IEEE32浮点数转十进制小数
比如:0x48A969C0
变为32位二进制数:01001000 10101001 01101001 11000000
其中最高位为0,代表是正数
接下来的八位:10010001变成十进制是145,根据IEEE规范应减去127得18,这是小数点右移的位数;
剩下的23位是纯二进制小数即:0.0101001 01101001 11000000
加1后得1.0101001 01101001 11000000
小数点右移18位后得10101001 01101001 110.00000

最后变为十进制得346958


有没有这样的函数能直接转换?

[解决办法]

探讨
比如:0x48A969C0
变为32位二进制数:01001000 10101001 01101001 11000000
其中最高位为0,代表是正数
接下来的八位:10010001变成十进制是145,根据IEEE规范应减去127得18,这是小数点右移的位数;
剩下的23位是纯二进制小数即:0.0101001 01101001 11000000
加1后得1.0101001 011……

热点排行