在Java 中將整數轉換為位元組數組,反之亦然
在位元組數組中儲存數字是程式設計中的基本操作。了解整數和位元組數組之間的轉換過程對於有效操作資料至關重要。
整數到位元組數組
要將整數轉換為位元組數組,您可以使用ByteBuffer,java.nio 套件中的一個類別。此類提供了一種與二進位資料互動的便捷方法。以下是一個範例:
<code class="java">byte[] arr = { 0x00, 0x01 }; // Source byte array short num = 0; ByteBuffer wrapped = ByteBuffer.wrap(arr); // Wraps source array in a buffer wrapped.get(num); // Reads 2 bytes from the buffer and stores in num</code>
此程式碼將來源位元組陣列包裝在 ByteBuffer 中,並將前兩個位元組(0x00 和 0x01)讀取為短整數 (num)。
位元組數組到整數
要將位元組數組轉換回整數,您可以使用相同的 ByteBuffer 類別。以下是範例:
<code class="java">byte[] arr = { 0x00, 0x01 }; ByteBuffer dbuf = ByteBuffer.allocate(2); dbuf.put(arr); // Writes source bytes to the buffer short num = dbuf.getShort(); // Reads 2 bytes from the buffer and stores in num </code>
此程式碼將來源位元組陣列寫入 ByteBuffer,然後將前兩個位元組(0x00 和 0x01)讀取為短整數 (num)。
理解程式碼
理解 ByteBuffer 類別的關鍵是它使用位元組順序(大端或小端)來決定數組中位元組的排列。 Big-endian 表示最高有效位元組儲存在陣列的開頭,而little-endian 則將其儲存在末尾。
預設情況下,ByteBuffer 使用big-endian 位元組順序。在執行任何操作之前,您可以透過呼叫wrapped.order(ByteOrder.LITTLE_ENDIAN)來指定小端順序。
以上是在 Java 中如何將整數轉換為位元組數組,反之亦然?的詳細內容。更多資訊請關注PHP中文網其他相關文章!