ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java 中怎样将 bytes 转换为 long 类型? [打印本页]

作者: 我爱普洱茶    时间: 2023-7-10 17:20
标题: Java 中怎样将 bytes 转换为 long 类型?
  将bytes 转换为long类型:
  第一种方式:
    String 接收 bytes 的构造器转成 String,再 Long.parseLong;
    但此种情况需要注意:字节数组中的每个字节都必须是有效的数字字符。如果字节数组包含非数字字符,则会引发NumberFormatException异常。确保在调用Long.parseLong()之前验证输入的字符串是否符合预期。  
    可以根据ASCII对照表; 
  1. public static void main(String[] args) {<br>   // 十进制 byte
  2.       byte[] bytes = {49, 50, 51};
  3.      // 将字节数组转换为字符串
  4.       String str = new String(bytes);
  5.       // 将字符串转换为长整型
  6.       long value = Long.parseLong(str);
  7.       System.out.println(value);
  8.     }
  9. 输出结果:
  10.     123
复制代码
  
   第二种方式:
    创建 ByteBuffer 对象,并传入 byte字节数组,通过其方法获取到long值。
    但此种情况需要注意:在使用ByteBuffer转换字节数组之前,需要确保字节数组的长度足够包含一个long类型的值,否则会抛出BufferUnderflowException异常。
    可以根据ASCII对照表;
  1. public static void main(String[] args) {
  2.     // 0x12 是一个表示十六进制数的标识符,它代表的是一个字节(Byte)。
  3.     // 在计算机中,一个字节由8个二进制位组成,每个二进制位可以表示0或1,而每4个二进制位可以表示一个十六进制数。
  4.     // 因此,0x12 表示的是二进制数 00010010,对应的十进制数是18。所以,0x12 可以表示一个字节(Byte)的值为 18。
  5.     byte[] bytes = {0x12, 0x34, 0x56, 0x78, (byte) 0x9A, (byte) 0xBC, (byte) 0xDE, (byte) 0xF0};
  6.     // 创建一个ByteBuffer对象,并传入字节数组
  7.     ByteBuffer buffer = ByteBuffer.wrap(bytes);
  8.     // 调用ByteBuffer的getLong方法获取long类型的值
  9.     long value = buffer.getLong();
  10.     System.out.println(value);
  11. }
  12. 输出结果:
  13.     1311768467463790320
复制代码
 
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4