Java 中將位元組陣列轉換為整數

Siddharth Swami 2023年10月12日
Java 中將位元組陣列轉換為整數

位元組屬於 Java 中的原始資料型別。Java 中的位元組陣列是包含位元組的陣列,並儲存二進位制資料的集合。整數資料型別表示 Java 中的整數。位元組和整數緊密相連,因為二進位制資料可以轉換為整數形式。

在本文中,我們將在 Java 中將位元組陣列轉換為整數型別。

Java 中 java.nio 包中的 ByteBuffer 類為我們提供了一種將位元組陣列轉換為整數的方法。

請參考下面的程式碼。

import java.nio.ByteBuffer;

public class Test {
  public static void main(String[] args) {
    byte[] bytes = {0x00, 0x01, 0x03, 0x10};
    System.out.println(ByteBuffer.wrap(bytes).getInt() + " ");
  }
}

輸出:

66320

在上面的程式碼中,我們建立了一個給定長度的位元組陣列的 Bytebuffer,然後,我們從中讀取接下來的四個位元組作為整數型別。ByteBuffer 方法將位元組陣列包裝到一個緩衝區中,getInt() 函式將類中接下來的四個位元組作為整數讀取。

下面我們有另一個 ByteBuffer 類的例子。在下面的程式碼中,我們只分配了兩個記憶體。這些方法執行的功能與前一個相同。這裡它分別轉換每個位元組,因為我們可以看到它給出了兩個不同的輸出。

請參考下面的程式碼。

import java.nio.*;
class Byte_Array_To_Int {
  static void byte_To_Int(byte ar[]) {
    ByteBuffer wrapped = ByteBuffer.wrap(ar); // big-endian by default
    short num = wrapped.getShort();
    ByteBuffer dbuf = ByteBuffer.allocate(2); // allocates the memory by 2.
    dbuf.putShort(num);
    byte[] bytes = dbuf.array();
    for (int i = 0; i < bytes.length; i++) { // loop for printing the elements.

      System.out.println(bytes[i]);
    }
  }
  public static void main(String[] args) {
    byte[] b = {0x03, 0x04}; // byte type array.
    byte_To_Int(b);
  }

輸出:

3
4 

ByteBuffer.wrap() 將陣列包裝到緩衝區中。預設情況下,它以 big-endian 0x00 型別的形式儲存資料。請注意,在輸出中,我們有兩個不同的整數。如前所述,此程式碼獲取陣列中存在的每個元素並相應地對其進行轉換。

相關文章 - Java Array