长期计算此值很容易:
它只是n-1的幂的2,而不是负1。n是类型中的位数。长期以来,这被定义为64位。因为我们也必须使用代表负数,所以我们使用n-1而不是n。因为必须考虑0,所以我们减去1。因此最大值为:
MAX = 2^(n-1)-1
相当于两倍的思考过程:
Double.MAX_VALUE
成为
1.7976931348623157E308
如果我们看一下Oracle提供的表示形式:
0x1.fffffffffffffp1023
或者
(2-2^-52)·2^1023
我们可以看到
fffffffffffff
是13个十六进制数字,可以表示为52个二进制数字(13 * 4)。
如果将每个值原样设置为1(F = 1111),我们将获得最大分数部分。
小数部分始终是52位,由
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
1位用于符号
其余11位组成指数。
因为指数必须同时为正和负且必须表示0,所以它的最大值可以为:
2^10 - 1
或者
1023
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句