Java 长与大整数
我知道Java 长与大整数,java,long-integer,biginteger,Java,Long Integer,Biginteger,我知道java.lang.Long和java.math.biginger都可以容纳非常大的自然数 我也知道Long的最大值,但是BigInteger的最大值是多少 除了容量之外,BigInteger在处理仍然在长范围内的大整数时会表现得更好吗 问题: 唯一需要考虑的是:我的值是否太长?BigInteger能够容纳比Long大得多的数字。BigInteger似乎能够保存(2^32)^Integer.MAX_值,尽管这取决于实现(而且,即使在实现中真正没有边界,最终也会有物理资源限制) Long的范
java.lang.Long
和java.math.biginger
都可以容纳非常大的自然数
我也知道Long的最大值,但是BigInteger的最大值是多少
除了容量之外,BigInteger在处理仍然在长范围内的大整数时会表现得更好吗
问题:
唯一需要考虑的是:我的值是否太长?BigInteger能够容纳比Long大得多的数字。BigInteger似乎能够保存(2^32)^Integer.MAX_值,尽管这取决于实现(而且,即使在实现中真正没有边界,最终也会有物理资源限制)
Long
的范围是[-9223372036854775808,+9223372036854775807]
Long将比biginger执行得更好,因此它实际上取决于值的大小。如果它们都属于Long的最大值,那么不使用Long是没有意义的。如果有大于Long max的值,则必须使用biginger。biginger能够容纳比Long大得多的数字。如果足够长,请使用Long。如果不是,则使用BigInteger。选择任何数值类型的方法相同。有问题的值是否可能超过特定类型的大小?如果是这样,请使用较大的字体。@Samha awesome rewrite-谢谢@David我不会说“任何数字类型”都是这样。取
Double
和BigDecimal
。如果精度非常关键,则可以使用BigDecimal
,即使Double
的值范围足够了。请注意(2^32)^Integer。最大值取决于实现。理论上,BigInteger没有最大值。所以,这是唯一需要考虑的问题:我的值是否太长了?@FritzDuchardt,就我看来,是的。Long肯定比BigInteger性能更好,所以值的大小确实是决定因素。