Long vs BigInteger

Fri*_*rdt 33 java biginteger long-integer

据我了解,双方java.lang.Longjava.math.BigInteger可以容纳非常大的自然数.

我也知道Long的最大值,但BigInteger的最大值是多少?

除了容量之外,BigInteger在处理仍然落在Long范围内的一般大整数时会表现得更好吗?

唯一的考虑因素是:我的价值对于龙来说太大了吗?

AHu*_*ist 44

BigInteger能够持有比Long更大的数字.BigInteger似乎能够持有(2 ^ 32)^ Integer.MAX_VALUE,尽管这取决于实现(并且,即使在实现中真正无限制,最终也会有物理资源限制)请参阅此处的解释.

范围Long是[-9,223,372,036,854,775,808,+ 9,223,372,036,854,775,807].

Long会比BigInteger表现更好,所以它实际上取决于你的值的大小.如果它们都属于Long的最大值,则不使用Long是没有意义的.如果任何大于Long max值,你几乎必须使用BigInteger.

  • 请注意,`(2 ^ 32)^ Integer.MAX_VALUE`与实现有关.理论上BigInteger没有最大值. (4认同)
  • @FritzDuchardt 据我所知,是的。Long 肯定会比 BigInteger 表现更好,因此值的大小确实是决定因素。 (2认同)