长 vs 大英特格
2022-08-31 16:27:11
我明白两者都可以容纳非常大的自然数。java.lang.Long
java.math.BigInteger
我也知道Long的最大值,但是BigInteger的最大值是多少?
除了容量之外,BigInteger 在处理仍然落在 Long 范围内的一般大整数时,性能会更好吗?
问题
唯一的考虑因素是:我的价值对于多头来说太大了吗?
我明白两者都可以容纳非常大的自然数。java.lang.Long
java.math.BigInteger
我也知道Long的最大值,但是BigInteger的最大值是多少?
除了容量之外,BigInteger 在处理仍然落在 Long 范围内的一般大整数时,性能会更好吗?
唯一的考虑因素是:我的价值对于多头来说太大了吗?
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。