使用BigInteger Multiply运算符

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

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

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

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

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

更容易实施的方式:

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

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

 BigInteger result = someBigInt.multiply(anotherBigInt); 

Java API中的BigInteger

结果乘以这些特定因素

答:131224324234234234234313

B:13345663456346435648234313

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

R:1751275668516575787795211751170772134115968581969

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

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