-5

通常Java int 的范围是-2147483648...2147483647,所以最大值是2147483647,我不想使用负数。一个 int 可以有超过 40 亿个不同的值,我可以使用 int 范围 2-40 亿吗?在 Eclipse 中,我使用 int a = 31474836471; 我得到编译错误。我该怎么办?

4

3 回答 3

4

您已经将此问题作为另一个问题的一部分提出。

答案是否定的,你不能让 Javaint类型拥有 40 亿个值 >= 零。

再次问同样的问题不会改变答案。

您需要更改程序以将“pk”类型从 替换intlong。您没有其他选择,因为您已声明密钥必须 >= 零。

于 2013-03-14T16:54:26.503 回答
2

不,在 Java 中,所有数字都是有符号的;没有无符号数。如果您需要更大范围的整数,请使用long.

于 2013-03-14T16:51:54.807 回答
1

你不能。负值范围可用于ints,因为该值是有符号的。只有这么多的信息可以用比特来表示。

有关有符号数和无符号数之间的一些很好的区别,请参见另一个问题:有符号与无符号整数

于 2013-03-14T16:52:14.367 回答