首页 > 解决方案 > 如何在Java中使-2147483648成为正数?

问题描述

我的问题:如何在 Java 中使 -2147483648 成为正数?

我的想法:有很多方法可以使负数变为正数:

使负数为正

但是,对于边缘情况,Java 中 int 的最小值为 -2147483648,所有这些方法都不起作用。

我应该怎么办?非常感谢!

标签: java

解决方案


如果你关心它保持一个int: 你不能。该int原语仅适合从 -2147483648 到并包括 2147483647 的值。

但是,如果您只想将 -2147483648 转换为整数 2147483648,请使用long

public class Test
{
  public static void main(String[] args)
  {
    int v = -2147483648;
    long r = -(long)v;
    System.out.print(r);
  }
}

并完成:2147483648

当然,也可以通读https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html来熟悉所有原始数据类型的局限性。如果这还不够,并且您需要任意长度的整数,BigInteger是可用的。


推荐阅读