长 vs 大英特格

2022-08-31 16:27:11

我明白两者都可以容纳非常大的自然数。java.lang.Longjava.math.BigInteger

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

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

问题

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


答案 1

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

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

多头将比 BigInteger 表现更好,因此这实际上取决于您的值的大小。如果它们都低于 Long 的最大值,那么不使用 Long 是没有意义的。如果有任何大于 Long max 值,您几乎必须使用 BigInteger。


答案 2

推荐