Long vs BigInteger



我知道java.lang.Longjava.math.BigInteger都可以容纳非常大的自然数。

我也知道Long的最大值,但是什么是BigInteger的最大值?

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

唯一要考虑的是:我的值对Long来说是否太大了?

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

最新更新