A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王康达 中级黑马   /  2015-11-29 23:15  /  1040 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

——关于float(4字节)的取值范围由来(-3.40E+38 ~ +3.40E+38)问题?
【float取值范围计算】
S EEEEEEEE PPPPPPPPPPPPPPPPPPPPPPP

表示的范围是:-(2^(2^(8-1)-1))*2~~~~(2^(2^(8-1)-1))*2 而(2^(2^(8-1)-1))*2化简之后其实就是(2^(2^7))用计算器计算得到:3.402824e38.

1.关于2^(2^(8-1)-1): 其实就是 EEEEEEEE 部分!(下面是拓展部分,你看了就知道)
 (1)浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。
 (2)【8位excess-127 二进制指数——阶码位】
         1).Excess系统是计算机中可以同时存储正数和负数的一种方法。在这个系统中,数很容易从十进制转换成二进制,反之亦然。但是,在数上进行运算很复杂。现在对他仅有的应用,就是用来存储小数的指数值。
         2).在Excess系统中,正数被称为幻数用于数据转换过程。幻数通常是(2^(n-1))或(2^(n-1)-1),这里,n是存储单元的位数。
例如:excess-127就是表示存储单元的位数n=8的情况下,而幻数为(2^(n-1)-1)!2的7次方减1得127!
  (3)利用上面的知识,可知 EEEEEEEE 表示的数值范围为:2^(幻数),幻数=(2^(n-1)-1)因为是excess-127,储存单元数为8!
          即是2^(2^(8-1)-1)!
2.乘以2又是怎么回事?
           (2^(2^(8-1)-1))*2 是何原理机制,求指教,感谢!

评分

参与人数 1黑马币 +10 收起 理由
海上的人 + 10 很给力!

查看全部评分

2 个回复

倒序浏览
怎么没人评论
回复 使用道具 举报
大神,带我装逼带我飞!~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马