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

基础有关问题,问了几个人,都没搭上来

2012-03-12 
基础问题,问了几个人,都没搭上来郁闷C/C++ code1.0101111 x 2的-129次方 ,存到单精度中, 单精度的指数最小

基础问题,问了几个人,都没搭上来
郁闷

C/C++ code
1.0101111 x 2的-129次方 ,存到单精度中, 单精度的指数最小是-126, 无法存储就会溢出书上说, 此时会溢出,那么就会通过向左 移动小数点每次一位,使其正规化,知道指数落在有效的范围内最后结果为:0.0010 1011 11 x 2的-126次方此时书上又说了句话,造成精度损失。

问题:0.0010 1011 11 x 2的-126次方 ,-126已经落在了 -126-127的范围内 之后,为什么会精度损失。。

在计算机中存储的 浮点数又是多少呢???


问题2:

负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。 
双精度数取值范围: 

尽管 -3.4028235E+38 非常小,可能接近0,但是0还是没有在单精度范围内啊??

怎么回事呢?



[解决办法]
探讨
正规化后 0.0010 1011 11 x 2的-126次方 ,-126已经落在了 -126-127的范围内 之后,为什么会精度损失。。




引用:

1
float是 指数8位, 小数部分23位。
double 指数11位,小数52 位

2
-3.4028235E+38 跟0 离得很远啊。

热点排行