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.valueOfLong.MAX_VALUE
于 2010-01-20T12:32:15.237 回答
0
考虑使用BigInteger(String val, int radix)构造函数。这可以创建BigInteger任何大小的。
于 2010-02-02T19:47:03.150 回答