BigInteger 的 valueOf 是否有任何限制?我不确定,但在某处读到,给定的数字只能是长度 = 长。
问问题
11421 次
4 回答
7
类BigInteger
本身用于表示不可变的任意精度整数。这意味着它可以表示任何大小的整数(当然受计算机内存的限制)。
但是,该valueOf
方法返回一个BigInteger
其值等于指定 long 的值。所以按照BigInteger
定义以这种方式创建的a只能是大的Long.MAX_VALUE
BigInteger
由该类的其他方法和构造函数BigInteger
创建的对象当然可以大于Long.MAX_VALUE
.
以下面的代码为例:
BigInteger big1 = BigInteger.valueOf(Long.MAX_VALUE);
BigInteger big2 = BigInteger.valueOf(Long.MAX_VALUE);
BigInteger big3 = big1.add(big2);
BigInteger
命名big3
大于Long.MAX_VALUE
即使其组成部分是使用该方法创建的valueOf
。
于 2010-01-20T12:35:45.930 回答
2
BigInteger
的valueOf()
方法以 along
作为其唯一参数。因此,您可以传递给它的最大数字是 along
可以表示的最大值 ( 2^63-1 = 9223372036854775807
)。
于 2010-01-20T12:27:30.290 回答
0
根据类的 Java API 规范,BigInteger
该BigInteger.valueOf
方法以 a作为参数,因此通过该方法long
可以获得的最大数是 2^63 - 1。BigInteger.valueOf
Long.MAX_VALUE
于 2010-01-20T12:32:15.237 回答
0
考虑使用BigInteger(String val, int radix)
构造函数。这可以创建BigInteger
任何大小的。
于 2010-02-02T19:47:03.150 回答