# Math multiplyHigh() method in Java with Examples

• Last Updated : 29 Oct, 2018

The multiplyHigh(long x, long y) method of Math class is used to return the most significant 64 bits from the 128-bit product of two 64-bit factors. This method takes two long values as input and a long is a 64-bit number. This method multiplies both long values and returns the most significant 64 bits from the product result which can be 128 bit long.

Syntax:

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

`public static long multiplyHigh(long x, long y)`

Parameters: This method accepts two long x, y as parameter where x and y are argument we want to multiply.

Return Value: This method returns the most significant 64 bits long value from the 128-bit product of two 64-bit numbersi.e. X * Y.

Note: This method was added in JDK 9. Hence it wont run in Online IDE.

Below programs illustrate the multiplyHigh() method:

Program 1:

 `// 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);``    ``}``}`

Output:

```45267356745 * 45676556735 = 112
```

Program 2: Multiplying two long contains Long.MAX values.

 `// 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);``    ``}``}`

Output:

```9223372036854775807 * 9223372036854775807 = 4611686018427387903
```

My Personal Notes arrow_drop_up