Java 溢位和下溢
溢位
當我們將超過最大允許值的值賦給變數時,就會發生溢位。
下溢
當我們將小於最小允許值的值賦給變數時,就會發生下溢。
JVM 在發生溢位或下溢時不會丟擲任何異常,它只是簡單地更改了值。程式設計師有責任檢查溢位/下溢條件的可能性並相應地採取措施。
示例(溢位)
考慮 int 變數的情況,它是 32 位的,任何超過 Integer.MAX_VALUE (2147483647) 的值都會迴繞。例如,Integer.MAX_VALUE + 1 返回 -2147483648 (Integer.MIN_VALUE)。
由於 int 資料型別在 Java 中是 32 位的,所以任何超過 32 位的值都會迴繞。從數值上講,這意味著在 Integer.MAX_VALUE (2147483647) 上加 1 後,返回值將是 -2147483648。事實上,您不需要記住這些值,可以使用常量 Integer.MIN_VALUE 和 Integer.MAX_VALUE。
int 的下溢
下溢是溢位的反面。在溢位的情況下,我們到達上限,而在下溢的情況下,我們到達下限。因此,在從 Integer.MIN_VALUE 減去 1 後,我們到達 Integer.MAX_VALUE。在這裡,我們從 int 的最小值迴繞到最大值。
對於非整數型別的資料型別,溢位和下溢會導致 INFINITY 和 ZERO 值。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP