通常Java int的范围是-2147483648 ... 2147483647,所以最大值是2147483647,我不想使用负数。一个int可以有超过40亿个不同的值,我可以使用int范围2-4亿?在eclipse中,我使用int a = 31474836471;我得到编译错误。我该怎么办?
答案 0 :(得分:4)
您已经将此问题作为另一个问题的一部分。
答案是否定的,您不能制作Java int
类型,以便您有40亿个值> =零。
再次询问同一个问题不会改变答案。
您需要更改程序,将“{pk”类型从int
替换为long
。鉴于您已声明密钥必须> = 0。
答案 1 :(得分:2)
不,在Java中,所有数字都已签名;没有未签名的号码。如果您需要更高的整数范围,请使用long
。
答案 2 :(得分:1)
你做不到。负范围可用于int
,因为该值已签名。只能在比特中表示这么多信息。
请参阅另一个问题,以便区分有符号和无符号数字:Signed versus Unsigned Integers