Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 长与大整数_Java_Long Integer_Biginteger - Fatal编程技术网

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性能更好,所以值的大小确实是决定因素。