將bytes 轉換為long類型: 第一種方式: String 接收 bytes 的構造器轉成 String,再 Long.parseLong; 但此種情況需要註意:位元組數組中的每個位元組都必須是有效的數字字元。如果位元組數組包含非數字字元,則會引發NumberFormatException異常。確保在 ...
將bytes 轉換為long類型:
第一種方式:
String 接收 bytes 的構造器轉成 String,再 Long.parseLong;
但此種情況需要註意:位元組數組中的每個位元組都必須是有效的數字字元。如果位元組數組包含非數字字元,則會引發NumberFormatException異常。確保在調用Long.parseLong()之前驗證輸入的字元串是否符合預期。
可以根據ASCII對照表;
public static void main(String[] args) {
// 十進位 byte byte[] bytes = {49, 50, 51}; // 將位元組數組轉換為字元串 String str = new String(bytes); // 將字元串轉換為長整型 long value = Long.parseLong(str); System.out.println(value); } 輸出結果: 123
第二種方式:
創建 ByteBuffer 對象,並傳入 byte位元組數組,通過其方法獲取到long值。
但此種情況需要註意:在使用ByteBuffer轉換位元組數組之前,需要確保位元組數組的長度足夠包含一個long類型的值,否則會拋出BufferUnderflowException異常。
可以根據ASCII對照表;
public static void main(String[] args) { // 0x12 是一個表示十六進位數的標識符,它代表的是一個位元組(Byte)。 // 在電腦中,一個位元組由8個二進位位組成,每個二進位位可以表示0或1,而每4個二進位位可以表示一個十六進位數。 // 因此,0x12 表示的是二進位數 00010010,對應的十進位數是18。所以,0x12 可以表示一個位元組(Byte)的值為 18。 byte[] bytes = {0x12, 0x34, 0x56, 0x78, (byte) 0x9A, (byte) 0xBC, (byte) 0xDE, (byte) 0xF0}; // 創建一個ByteBuffer對象,並傳入位元組數組 ByteBuffer buffer = ByteBuffer.wrap(bytes); // 調用ByteBuffer的getLong方法獲取long類型的值 long value = buffer.getLong(); System.out.println(value); } 輸出結果: 1311768467463790320
完