使用BigInteger Multiply运算符

时间:2010-10-06 23:58:25

标签: java biginteger

我想知道是否有办法将BigInteger个变量相乘,因为*运算符无法应用于BigInteger

所以我想知道是否可以在不使用BigIntegers运算符的情况下将两个*相乘。

4 个答案:

答案 0 :(得分:18)

您使用BigIntegers multiply()方法,如下所示:

BigInteger int1 = new BigInteger("131224324234234234234313");
BigInteger int2 = new BigInteger("13345663456346435648234313");
BigInteger result =  int1.multiply(int2) 

我应该在不久前指出BigInteger是不可变的。因此,操作的任何结果都必须存储到变量中。操作符或操作数永远不会更改。

答案 1 :(得分:3)

更容易实施:

int i = 5;
BigInteger bigInt = new BigInteger("12345678901");
BigInteger result = bigInt.multiply(BigInteger.valueOf(i))

答案 2 :(得分:1)

您可以在BigInteger中使用multiply(BigInteger)方法。所以:

BigInteger result = someBigInt.multiply(anotherBigInt);

BigInteger in Java API

答案 3 :(得分:0)

结果乘以这些特定因子

A:131224324234234234234313

B:13345663456346435648234313

可能是这个(我希望我是对的):

R:1751275668516575787795211751170772134115968581969

两者都被认为是两个正整数。并使用的技术 是Karatsuba的方法

int ab =(mul1)* 10 ^ n +(mul3 - mul1 - mul2)* 10 ^ n / 2 + mul2;