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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn