將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 =https://www.cnblogs.com/victor-sin/archive/2023/07/10/ 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 =https://www.cnblogs.com/victor-sin/archive/2023/07/10/ buffer.getLong(); System.out.println(value); } 輸出結果: 1311768467463790320
完
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/556920.html
標籤:其他
上一篇:String s=new String(“hello”)的執行程序
下一篇:返回列表