Java 中將位元組轉換為整數

Rupam Yadav 2023年10月12日
  1. 使用 Byte Wrapper 類和 Java 中的強制轉換將 Byte 轉換為 Int
  2. 使用位元組到無符號位元組轉換
Java 中將位元組轉換為整數

位元組資料型別定義為 8 位有符號二進位制補碼整數,而 int 資料型別可歸類為 32 位有符號二進位制補碼整數。除非擔心記憶體,否則整數是用於儲存整數值的預設資料型別。在本文中,我們將討論如何將位元組轉換為 int 資料型別。

使用 Byte Wrapper 類和 Java 中的強制轉換將 Byte 轉換為 Int

一個位元組儲存 0 作為預設值,其範圍從 -128 = (-2^7) 到 127 = (2^7 -1) 。一個整數的預設值為 0,其範圍從 -2^31 到 2^31-1。byte 的 Wrapper 類是 Byte,而 int 的 Wrapper 類是 Integer。

如果位元組值超出它們的範圍,編譯器會自動將其提升為 int 變數。在 Java 中,只有一個有符號整數型別(沒有無符號概念);這意味著所有整數原始型別,包括位元組,都是有符號的。但是,無符號位元組資料型別的範圍是 0 到 255。

位元組到整數轉換的重點是保留值的符號。在程式碼中,我們有一個位元組型別變數 b,我們將把它轉換成一個 int 型別變數 i。因此,它並不沮喪。我們可以直接將位元組分配給 int 資料型別。

其次,我們有一個 Wrapper 類方法 intValue(),它在擴大原始轉換後將 byte 的值作為 int 返回,因為我們將較小的資料型別儲存為較大的資料型別。

如果我們將位元組視為無符號,那麼我們有 Byte.toUnsignedInt() 方法,該方法使用無符號轉換將傳遞的引數轉換為 int。

public class JavaByteToInt {
  public static void main(String args[]) {
    byte b = -98;
    System.out.println("byte b : = " + b);
    int i = b;
    System.out.println("int i : " + i);

    Byte byt = new Byte(b);
    int i1 = byt.intValue();
    int i2 = Byte.toUnsignedInt(byt);
    System.out.println("int i1 : " + i1);
    System.out.println("int i2 : " + i2);
  }
}

輸出:

byte b : = -98
int i : -98
int i1 : -98
int i2 : 158

使用位元組到無符號位元組轉換

無符號位元組資料型別的範圍從 0 到 255;但是,Java 沒有無符號位元組。你可以做的是將位元組轉換為 int 以生成一個無符號位元組,並使用 0xff 掩碼(按位)新 int 以獲得最後 8 位或防止符號擴充套件。

當位元組值與 & 運算子一起使用時,它會自動將位元組轉換為整數。0x000000FF 的十六進位制值表示為 0xFF

public class JavaByteToInt {
  public static void main(String args[]) {
    byte b = -127;
    int i = (b & 0xFF);
    System.out.println(i);
  }
}

輸出:

129
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Byte

相關文章 - Java Int