Java程序:长整数乘法及溢出检查


为了检查长整数溢出,我们需要将乘积结果与Long.MAX_VALUE进行比较。其中,Long.MAX_VALUEJava中Long类型的最大值。

让我们来看一个例子,其中长整数值相乘,如果结果超过Long.MAX_VALUE,则抛出异常。

长整数乘法及溢出检查步骤

以下是Java中进行长整数乘法及溢出检查的步骤:

  • 通过定义两个长整数val1val2来初始化长整数值。
  • 将val1和val2相乘得到mul。
  • 通过将mul与Long.MAX_VALUE比较来检查溢出。
  • 如果mul超过Long.MAX_VALUE,我们将通过抛出异常ArithmeticException)来处理溢出。
  • 如果使用条件语句,则在没有溢出发生时打印结果。

Java中长整数乘法及溢出检查

以下是一个显示如何检查Long溢出的示例:

public class Demo {
   public static void main(String[] args) {
      long val1 = 6999;
      long val2 = 67849;
      System.out.println("Value1: "+val1);
      System.out.println("Value2: "+val2);
      long mul = val1 * val2;
      if (mul > Long.MAX_VALUE) {
         throw new ArithmeticException("Overflow!");
      }
      // displaying multiplication
      System.out.println("Multiplication Result: "+(long)mul);
     }
}

输出

Value1: 6999
Value2: 67849
Multiplication Result: 474875151

代码解释

我们有两个大数,val1val2,我们将其相乘并将结果存储在mul中。Java中的long数据类型的最大值为Long.MAX_VALUE,因此必须确保乘法不会超过此限制,否则会导致溢出。

直接将结果与Long.MAX_VALUE进行比较是不够的,因为溢出可能在乘法本身发生,导致值不正确。执行乘法后,代码检查mul是否超过Long.MAX_VALUE。如果超过,程序将抛出ArithmeticException来指示溢出。如果没有溢出,程序将成功打印乘法结果。

更新于:2024年9月2日

2K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告