HOWTO · Java
在 Java 中建立無符號整數
本文介紹如何在 Java 中建立無符號整數。
有符號整數作為正負值範圍儲存在資料庫中,從 -1 到 -128。與此相反,無符號整數僅包含從 0 到 255 的大量正範圍值,沒有負值。這意味著無符號整數永遠不能儲存負值。
在 Java 中,資料型別集不明確包含任何無符號的 int。但是,根據用例,可以將其他資料型別視為無符號整數。Java 提供了一個 long 資料型別來儲存更大的無符號值。
long 資料型別是 64 位大小,在內部處理二進位制補碼。在 Java 8 和更高版本中,long 資料型別可以儲存範圍從 0 到 2^64-1 的值。與簡單的 int 資料型別相比,它提供了更多的資料範圍。
下面是定義兩種資料型別的大小和區別的程式碼塊。
public class Main {
public static void main(String[] args) {
System.out.println("Size of int: " + Integer.SIZE + "bits");
System.out.println("Size of int: " + Long.SIZE + "bits");
int signedInt = -2345678;
long unsignedValue = signedInt & 0xffffffffL;
System.out.println(signedInt);
System.out.println(unsignedValue);
}
}
在上面的程式碼塊中,前兩個語句列印 Integer 和 Long 類的大小。整數是一種原始資料型別,用於儲存 int 值。
int 的大小列印為 32 個位元組,而 Long 包裝類的大小列印為 64 個位元組。這些類定義了表示包裝類大小的靜態和最終變數。
在列印語句旁邊,定義了兩個區域性變數或類變數。變數是 int 和 long 資料型別。在整數中例項化的值是負數,因為它同時包含負值和正值。
在 long 變數中,有符號整數使用按位 & 運算子進行運算。它適用於轉換為二進位制格式的數字的二進位制補碼。所以在內部,它首先將負值轉換為二進位制形式。在兩個二進位制值之間,它對兩個值執行邏輯&操作。運算子最終會將負值轉換為正數。
上面兩行程式的輸出如下所示。
Size of int: 32bits
Size of int: 64bits
-2345678
4292621618