首页 > 编程知识 正文

float的取值范围怎么来的(float精度范围java)

时间:2023-05-04 22:25:58 阅读:77130 作者:4327

Java中浮点的取值范围

(2011-07-29 01:05:04 )

标签:

闲谈

格式设置

关于java浮点数批准的事IEEE标准754浮动点

编号规范。 可访问blog.csdn.net/tree root/articles/94752.aspx。

浮动借4个字节,和int一样,即使是32比特

第一个位表示符号,0表示正数,1表示负数。 这是个好意思,不需要多管闲事。

第2-9个比特表示指数,共有8个(可以表示0-255 ),这里的底数为2,为了表示正负两者,这里减去127的偏移量),则范围为(-127到128 )

剩下的23位表示小数的局部,其中23位表示24位数字。 因为有默认的前导1 (只有二进制才有这个个性)。

最后收获为:(-1 ) ^ ) ^(sign )1.f*2^ ) exponent )

这里,sign是编码比特,f是23比特54.163 Xi.com的小数局部,exponent是指数局部,最后表示范围(例如

2^(-126 )~2 )1-2^(-24 ) * 2^127

这还不在浮点取值范围内。 因为规范中既规定了非格式表示法,也有一些特殊的法定。

非格式显示:

如果指数局部完全为0,小数局部完全不为0,则缺省情况下为0而不是1,从而表示未格式化的浮点数。

取值位0.f*2^(-126 ),表示范围位2^(-149 )~(1-2^ )-23 ) (2^ )-126 )

我从没在这里想过符号。 为什么是-126而不是-127呢? 万一是-127的佳能550D,则在ve.veveenglish.com上,最大显示为2^((-127 )-2^ )-127 ),明显为2^((-127 ) ) )。

~~2^(-126 )无法显示。

其他特异性显示

1 .指数局部和小数局部均为0时,表示0的值,有0和-0的点,0x00000000表示正0,0x 0000000表示负0。

2 .指数局部全1、小数局部全0时表示无限大,有正无限和负无限,0x7f800000表示正无限,0xff800000表示负无限。

3 .指数局部全1、小数局部不全0时,表示NaN,分为QNaN和SNaN,Java均为NaN。 结论:

可见浮点数的可取范围为:2^(-149 )~(2-2^ )-23 ) *2^127,是Float.MIN_VALUE和Float.MAX_VALUE所渴望的

份额:

喜欢

0

赠金笔

加载中,请稍等……。

正在加载评论,请稍等.

发送评论

登录名:密码:恢复密码注册,记住登录状态

昵称:

评论转载这篇博文

发送评论

以上网友的发言只是表达了其个人观点,并不表达新浪网的观点和立场。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。