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

Siddharth Swami 2022年1月22日 2021年6月29日
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