在 Java 中建立無符號整數

Rashmi Patidar 2023年10月12日
在 Java 中建立無符號整數

有符號整數作為正負值範圍儲存在資料庫中,從 -1-128。與此相反,無符號整數僅包含從 0255 的大量正範圍值,沒有負值。這意味著無符號整數永遠不能儲存負值。

在 Java 中,資料型別集不明確包含任何無符號的 int。但是,根據用例,可以將其他資料型別視為無符號整數。Java 提供了一個 long 資料型別來儲存更大的無符號值。

long 資料型別是 64 位大小,在內部處理二進位制補碼。在 Java 8 和更高版本中,long 資料型別可以儲存範圍從 02^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);
  }
}

在上面的程式碼塊中,前兩個語句列印 IntegerLong 類的大小。整數是一種原始資料型別,用於儲存 int 值。

int 的大小列印為 32 個位元組,而 Long 包裝類的大小列印為 64 個位元組。這些類定義了表示包裝類大小的靜態和最終變數。

在列印語句旁邊,定義了兩個區域性變數或類變數。變數是 intlong 資料型別。在整數中例項化的值是負數,因為它同時包含負值和正值。

long 變數中,有符號整數使用按位 & 運算子進行運算。它適用於轉換為二進位制格式的數字的二進位制補碼。所以在內部,它首先將負值轉換為二進位制形式。在兩個二進位制值之間,它對兩個值執行邏輯&操作。運算子最終會將負值轉換為正數。

上面兩行程式的輸出如下所示。

Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相關文章 - Java Integer