O método multiplyHigh (long x, long y) da classe StrictMath é usado para retornar os 64 bits mais significativos do produto de 128 bits de dois fatores de 64 bits. Este método usa dois valores longos como entrada e um longo é um número de 64 bits. Este método multiplica ambos os valores longos e retorna os 64 bits mais significativos do resultado do produto, que pode ter 128 bits de comprimento.

Sintaxe:

public static long multiplyHigh(long x, long y)

Parâmetros: Este método aceita dois longos x, y como parâmetro, onde x e y são os argumentos que queremos multiplicar.

Valor de Retorno: Este método retorna o significativos 64 bits de comprimento valor mais a partir do produto de dois números de 64 bits 128 bits isto é, X * Y .

Observação: este método foi adicionado ao JDK 9. Portanto, ele não será executado no IDE online.

Os programas abaixo ilustram o método multiplyHigh():

Programa 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);
    }
}

Saída:

45267356745 * 45676556735 = 112

Programa 2: Multiplicar dois long contém valores 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);
    }
}

Saída:

9223372036854775807 * 9223372036854775807 = 4611686018427387903

Referências: https://docs.oracle.com/javase/10/docs/api/java/lang/StrictMath.html#multiplyHigh(long, long)