Java 中將位元組陣列轉換為整數
Siddharth Swami
2022年1月22日
2021年6月29日
位元組屬於 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 型別的形式儲存資料。請注意,在輸出中,我們有兩個不同的整數。如前所述,此程式碼獲取陣列中存在的每個元素並相應地對其進行轉換。