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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

范家鹏

初级黑马

  • 黑马币:0

  • 帖子:10

  • 精华:0

© 范家鹏 初级黑马   /  2012-6-12 23:01  /  1490 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


int占用的空间是4字节,float占用的空间也是4字节,
而float的值域是-3.403*10^38~3.403*10^38,int的值域是-2^31~2^31-1
按理说都占4个字节32个2进制位,值域应该相同,为什么float的值域比int的值域大那么多?
long和double所占的空间相同,表数范围也差很多,求解~

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
这个张孝祥老师的java基础视频讲了的,int四个字节32位中的低31位都用来装数据,最高为是符号位。
而float的32位分成3部分,第0到22是有效数据 y,23到31是幂 m,最高为是符号位 f,那最后的值是 f * y [sup](m-150)[/sup].
请参看视频和API。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
赵兵锋 发表于 2012-6-12 23:19
这个张孝祥老师的java基础视频讲了的,int四个字节32位中的低31位都用来装数据,最高为是符号位。
而float ...

谢了~我看的是毕向东老师的~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马