可以使用Java中的ByteBuffer類來實現int轉byte數組。
以下是使用ByteBuffer類實現int轉byte數組的示例代碼:
import java.nio.ByteBuffer;
public class Main {
public static void main(String[] args) {
int num = 12345;
// 創建一個4字節的ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(4);
// 將int值寫入ByteBuffer
buffer.putInt(num);
// 獲取ByteBuffer中的字節數組
byte[] byteArray = buffer.array();
// 打印字節數組
for (byte b : byteArray) {
System.out.println(b);
}
}
}
運行以上代碼,會輸出byte數組的每個元素值:
0
0
48
57
其中,byte數組的前兩個元素值為0,是因為int值占用4個字節,而ByteBuffer默認使用大端字節序(Big Endian),將int值高位字節存儲在byte數組的前面。可以使用buffer.order(ByteOrder.LITTLE_ENDIAN);
方法設置使用小端字節序(Little Endian)。
另外,如果只需要將int值轉換為byte數組,可以使用位運算符將int值的每個字節提取出來,例如:
int num = 12345;
byte[] byteArray = new byte[4];
byteArray[0] = (byte)(num & 0xFF);
byteArray[1] = (byte)((num >> 8) & 0xFF);
byteArray[2] = (byte)((num >> 16) & 0xFF);
byteArray[3] = (byte)((num >> 24) & 0xFF);
以上代碼將int值的每個字節存儲在byte數組中。注意要使用位運算符&
和>>
提取每個字節的值。