通常Java int 的范围是-2147483648...2147483647,所以最大值是2147483647,我不想使用负数。一个 int 可以有超过 40 亿个不同的值,我可以使用 int 范围 2-40 亿吗?在 Eclipse 中,我使用 int a = 31474836471; 我得到编译错误。我该怎么办?
问问题
384 次
3 回答
4
您已经将此问题作为另一个问题的一部分提出。
答案是否定的,你不能让 Javaint
类型拥有 40 亿个值 >= 零。
再次问同样的问题不会改变答案。
您需要更改程序以将“pk”类型从 替换int
为long
。您没有其他选择,因为您已声明密钥必须 >= 零。
于 2013-03-14T16:54:26.503 回答
2
不,在 Java 中,所有数字都是有符号的;没有无符号数。如果您需要更大范围的整数,请使用long
.
于 2013-03-14T16:51:54.807 回答
1
你不能。负值范围可用于int
s,因为该值是有符号的。只有这么多的信息可以用比特来表示。
有关有符号数和无符号数之间的一些很好的区别,请参见另一个问题:有符号与无符号整数
于 2013-03-14T16:52:14.367 回答