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+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告