溢位
一、介紹
Java 提供 long、int、short 及 byte 四種型態最大最小值代碼; 要使用某個型態的代碼,必須先指定該型態所在的類別庫以及該型態所屬的類別;
以下為長整數最大值的代碼示範:
long | int | |
所屬類別 | java.lang.Long | java.lang.Integer |
最大值代碼 | MAX_VALUE | MAX_VALUE |
最大值 | 9223372036854775807 | 2147483647 |
最小值代碼 | MIN_VALUE | MIN_VALUE |
最小值 | -9223372036854775808 | -2147483648 |
shore | byte | |
所屬類別 | java.lang.Short | java.lang.Byte |
最大值代碼 | MAX_VALUE | MAX_VALUE |
最大值 | 32767 | 127 |
最小值代碼 | MIN_VALUE | MIN_VALUE |
最小值 | -32768 | -128 |
二、程式實作
以下範例:分別宣告包含java.lang 與省略,編譯看看結果是否正確。
1. 輸出最大值與最小值
2. 當輸出值溢位
以下透過上方介紹過的最大值做溢位的示範:
OUTPUT: i= 2147483647 i+1= -2147483648 i+2= -2147483647
溢位發生:
當整數的大小超過可以表示的範圍,而程式又沒有做數值範圍的檢查時,這個整數所輸出的值將發生紊亂,且不是預期中的執行結果,稱為「溢位」(overflow)。
解決方法:加上數值範圍的檢查功能,或使用更大的表示範圍之資料型態。
3. 解決溢位發生
OUTPUT: i= 2147483647 i+1= -2147483648 //發生溢位 i+2= 2147483649 //無溢位 i+3= 2147483650 //無溢位
Last updated