Java StrictMath multiplyHigh()方法及示例
StrictMath类的 multiplyHigh(long x, long y) 方法用于返回两个64位因子的128位乘积中最重要的64位。该方法将两个长值作为输入,长是一个64位的数字。该方法将两个长值相乘,并从乘积结果中返回最重要的64位,该结果可以是128位长。
语法
public static long multiplyHigh(long x, long y)
参数: 该方法接受两个长的 x,y 作为参数,其中x和y是我们要乘的参数。
返回值: 该方法返回两个64位数字的128位乘积中最重要的64位长值, 即X * Y
。
注意: 这个方法是在 JDK 9 中添加的 ,因此它不会在Online IDE中运行 。
以下程序说明了multiplyHigh()方法。
程序1 :
// Java program to demonstrate
// multiplyHigh() method of StrictMath 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 = StrictMath.multiplyHigh(a, b);
// print result
System.out.println(a + " * "
+ b + " = "
+ c);
}
}
输出
45267356745 * 45676556735 = 112
程序2: 两个包含Long.MAX值的长的相乘。
// Java program to demonstrate
// multiplyHigh() method of StrictMath 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 = StrictMath.multiplyHigh(a, b);
// print result
System.out.println(a + " * "
+ b + " = " + c);
}
}
输出
9223372036854775807 * 9223372036854775807 = 4611686018427387903
参考文献: https://docs.oracle.com/javase/10/docs/api/java/lang/StrictMath.html#multiplyHigh(long, long)