【发布时间】:2013-05-17 05:07:52
【问题描述】:
Oracle java 文档说
所有 232 个可能的 int 值都是以(大约)相等的概率产生的。
这是否意味着生成的值范围从 -(232) 到 232,或这是否意味着 -(216) 到 216?
【问题讨论】:
-
-(2^32) 到 2^32 是 2^33+1 个值。 -(2^16) 到 2^16 是 2^17+1 个值。这不是 Java,只是简单的数学。 ;)
Oracle java 文档说
所有 232 个可能的 int 值都是以(大约)相等的概率产生的。
这是否意味着生成的值范围从 -(232) 到 232,或这是否意味着 -(216) 到 216?
【问题讨论】:
表示从 -231 (java.lang.Integer.MIN_VALUE) 到 231-1 (java.lang.Integer.MAX_VALUE)。请参阅the Javadoc for java.lang.Integer 或§4.2.1 "Integral Types and Values" of The Java Language Specification, Java SE 7 Edition。
【讨论】:
正如文档所说,nextInt() 返回一个 int,而在 java 中 int 是一个 32 位整数。所以它会在那个range。
【讨论】: