Java 中將整數轉換為位元組
Mohammad Irfan
2023年10月12日
- Java 中的整數到位元組的轉換
- Java 中的整數到位元組轉換和反向操作
- Java 中的整數到位元組無符號轉換
- 使用 Java 8 進行整數到位元組的轉換和反向操作
-
在 Java 中使用
byteValue()
方法將整數轉換為位元組
本教程介紹如何在 Java 中將 int 轉換為位元組。
在 Java 中,int 和 byte 都是原始型別,用於儲存數值。兩者都用於儲存有符號和無符號值,但具有不同的儲存範圍。位元組範圍是 -128
到 127
,整數範圍是 -2,147,483,648
到 2,147,483,647
。所以,很明顯,我們可以看到 int 可以儲存比 byte 型別更大的值。
在將 int 轉換為 byte 時,由於記憶體的原因,一些資料會丟失。讓我們看一些例子。
Java 中的整數到位元組的轉換
在此示例中,我們通過強制轉換將 int 轉換為 byte,並檢視 int 值是否超出了 byte 的範圍。如果是,則將其轉換為負值。這意味著如果一個值大於位元組範圍,那麼它會被轉換為負數。因此,當我們將大值轉換為位元組型別時,會得到與 int 型別不同的結果。
public class SimpleTesting {
public static void main(String[] args) {
int a = 127; // byte max positive range
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = 130; // Out of positive byte range
System.out.println("int value = " + a);
b = (byte) a;
System.out.println("byte value = " + b);
}
}
輸出:
int value = 127
byte value = 127
int value = 130
byte value = -126
Java 中的整數到位元組轉換和反向操作
要將 int 型別轉換為位元組型別,我們需要使用顯式型別轉換。但是,要將位元組轉換為 int,我們不需要任何顯式轉換。Java 隱式地做到了這一點。請參閱下面的示例。
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = b;
System.out.println("int value = " + a);
}
}
輸出:
int value = 230
byte value = -26
int value = -26
Java 中的整數到位元組無符號轉換
我們在上面所有的例子中都做了符號轉換,但是如果你想要無符號轉換,那麼使用下面的程式碼。在這裡,我們使用 & 0xFF
程式碼以及 int 值來獲得無符號轉換。請參閱下面的示例。
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = b & 0xFF;
System.out.println("int value = " + a);
}
}
輸出:
int value = 230
byte value = -26
int value = 230
使用 Java 8 進行整數到位元組的轉換和反向操作
如果你使用的是 Java 8 或更高版本,則使用 Byte
類的 toUnsignedInt()
方法來獲得無符號轉換。請參閱下面的示例。
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = Byte.toUnsignedInt(b);
System.out.println("int value = " + a);
}
}
輸出:
int value = 230
byte value = -26
int value = 230
在 Java 中使用 byteValue()
方法將整數轉換為位元組
我們還可以使用 Integer
類的 byteValue()
方法來獲取轉換後的位元組值。此方法返回一個有符號的值。因此,僅當你想獲得有符號結果時才使用它。請參閱下面的示例。
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
Integer i = a;
byte b = i.byteValue();
System.out.println("byte value = " + b);
}
}
輸出:
int value = 230
byte value = -26
相關文章 - Java Int
- 如何在 Java 中將整型 int 轉換為字元 char
- 在 Java 中將 Int 轉換為 Double
- Java 中的整數列表
- 在 Java 中將 Object 轉換為 Int
- Java 中將 Integer 轉換為 Int