Java程式:長整數乘法及溢位檢查
為了檢查長整數溢位,我們需要將乘積結果與Long.MAX_VALUE進行比較。其中,Long.MAX_VALUE是Java中Long型別的最大值。
讓我們來看一個例子,其中長整數值相乘,如果結果超過Long.MAX_VALUE,則丟擲異常。
長整數乘法及溢位檢查步驟
以下是Java中進行長整數乘法及溢位檢查的步驟:
- 透過定義兩個長整數val1和val2來初始化長整數值。
- 將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
程式碼解釋
我們有兩個大數,val1和val2,我們將其相乘並將結果儲存在mul中。Java中的long資料型別的最大值為Long.MAX_VALUE,因此必須確保乘法不會超過此限制,否則會導致溢位。
直接將結果與Long.MAX_VALUE進行比較是不夠的,因為溢位可能在乘法本身發生,導致值不正確。執行乘法後,程式碼檢查mul是否超過Long.MAX_VALUE。如果超過,程式將丟擲ArithmeticException來指示溢位。如果沒有溢位,程式將成功列印乘法結果。
廣告