正文

浮点数是怎样炼成的2006-05-24 22:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/boxer/14811.html

分享到:

12345678900(十进制)=>

1011011111110111000001110000110100(34位精确值,整型格式)

========>浮点格式(32位)

符号位:0
                          +127
指数:33(100001=>00100001 =====> 10100000
                  原码         阶码(移码)
                 
尾数:1.01101111111011100000111(取24位,尾数规定为23位,加隐含的1位,共24位)

=>(注意:前面的1在实际存放时为了多存放一位而隐含,即浮点数的尾数的最高位永远隐含为1)
0 10100000 01101111111011100000111(实际放了尾数后面的23位)
    指数          尾数
   
最后结果就是01010000001101111111011100000111

现在再把它还原成整数:
(1)取尾数23位:01101111111011100000111
(2)在前面加上隐含的1,变成:101101111111011100000111
(3)取指数8位:10100000
(4)指数减127得:100001(33)
(5)尾数向左移动10位(尾数本身23位,33-23=10):1011011111110111000001110000000000
此即12345678848(32位的浮点数只有前面6~7位是精确的)

阅读(3326) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册