Java中的数学 multiplyHigh() 方法及示例
Math 类的multiplyHigh(long x, long y)方法用于从两个 64 位因子的 128 位乘积中返回最高有效 64 位。此方法将两个 long 值作为输入,一个 long 是一个 64 位数字。此方法将两个 long 值相乘,并从可能为 128 位长的乘积结果中返回最高有效 64 位。
句法:
public static long multiplyHigh(long x, long y)
参数:此方法接受两个 long x, y作为参数,其中 x 和 y 是我们要相乘的参数。
返回值:此方法从两个 64 位数字即 X * Y的 128 位乘积中返回最高有效的 64 位长值。
注意:此方法是在JDK 9 中添加的。因此它不会在 Online IDE 中运行。
下面的程序说明了 multiplyHigh() 方法:
方案一:
// Java program to demonstrate
// multiplyHigh() method of Math class
public class GFG {
// Main method
public static void main(String[] args)
{
// two long values
long a = 45267356745l, b = 45676556735l;
// apply multiplyHigh method
long c = Math.multiplyHigh(a, b);
// print result
System.out.println(a + " * "
+ b + " = "
+ c);
}
}
输出:
45267356745 * 45676556735 = 112
程序 2:将两个 long 相乘包含 Long.MAX 值。
// Java program to demonstrate
// multiplyHigh() method of Math class
public class GFG {
// Main method
public static void main(String[] args)
{
// two Integer values
long a = Long.MAX_VALUE, b = Long.MAX_VALUE;
// apply multiplyHigh method
long c = Math.multiplyHigh(a, b);
// print result
System.out.println(a + " * "
+ b + " = " + c);
}
}
输出:
9223372036854775807 * 9223372036854775807 = 4611686018427387903