我的问题:如何在Java中使-2147483648成为正数?
我的想法:有很多方法可以使负数变为正数:
然而,对于边缘情况,Java 中 int 的最小值为 -2147483648,所有这些方法都不起作用。
我应该怎么办?非常感谢!
如果你关心它留下int:你不能。这int基元仅适合从 -2147483648 到 2147483647(包括 2147483647)的值。
但是,如果您只想将 -2147483648 转换为整数 2147483648,则使用long:
public class Test
{
public static void main(String[] args)
{
int v = -2147483648;
long r = -(long)v;
System.out.print(r);
}
}
Run Code Online (Sandbox Code Playgroud)
并做了:2147483648。
当然,还要通读https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html以熟悉所有原始数据类型的限制。如果这还不够,并且您需要任意长度的整数,则可以使用BigInteger 。