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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    最近学习Javase部分 感觉遇到一个问题搞不懂
     byte short int long等整数类型的 我们都可以推导出二进制的形式 然后根据这个形式计算出 取值范围  但是double float型的数据在内存中怎么存放的?不知道二进制形式的话,也不好确定取值范围啊 ?
      来个大神讲讲这个怎么存放的,为什么小数类型的数据取值范围就是书上那样的?-3.4*10(-38)~3.4*10(38)  float
  

1 个回复

倒序浏览
内存存储是按照IEEE754标准存储的,一个小数会被拆分成三部分,符号位、指数位和尾数位,这些位点并不是直接存的数据,而是经过偏移的,单精度浮点的偏移量是127(十进制的),所以存储浮点数的时候要偏移量加上阶码。因为IEEE754标准是这么规定的。都是一套定死的规矩规范
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马