关于float,double等表示的数值范围的计算

上一篇 / 下一篇  2010-06-21 19:05:58 / 天气: 晴朗 / 心情: 平静 / 个人分类:C语言

最近看了IEEE754浮点数的表示方法。在C的参考书中有提到float类型数据的表示范围为-3.4*10^38~+3.4*10^38。究竟如何计算该范围,分析如下:

 

对于单精度浮点数(float)来说,有一位符号位,指数位共8位,尾数共23位。指数能够表示的指数范围为-128~127。尾数为23位。当尾数全1时再加上小数点前面的1,指数取到最大正数1278位,正数最大127,负数最小-128,浮点数取得正数的最大值。

 

+1.111111111111111111111*2^1271.后面231,由于尾数的范围12,其最高位总为1,故只需存取小数部分,所以小数为是231),约等于2*2^127=3.4*10^38。为3.4*10^38负数亦然。

 

Double的计算与此类似,double的符号位为63位,指数为6252位,共11位。表示的范围为-10241023。尾数为510。表示的范围为+1.111111111111111111111*2^10231.后面521)为1.7*10^308。负数亦然。


TAG: Double double float 范围 数值

引用 删除 mycolee   /   2010-06-27 21:39:39
介绍还是很详细的阿!
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2014-04-23  
  12345
6789101112
13141516171819
20212223242526
27282930   

数据统计

  • 访问量: 9116
  • 日志数: 3
  • 建立时间: 2010-06-21
  • 更新时间: 2010-07-02

RSS订阅

Open Toolbar