首页 > 编程语言 >Java 中怎样将 bytes 转换为 long 类型?

Java 中怎样将 bytes 转换为 long 类型?

时间:2023-07-10 16:45:25浏览次数:38  
标签:Java 字节 bytes long ByteBuffer byte String

  将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

 

 

标签:Java,字节,bytes,long,ByteBuffer,byte,String
From: https://www.cnblogs.com/victor-sin/p/17541541.html

相关文章

  • JavaScript|对象
    1类和对象1)对象的概念对象:一个具体的实体在现实世界中,对象随处可见,一个人,一个学生,一个杯子,一辆汽车,游戏里的一个英雄...都是一个对象2)对象的组成如何描述一个对象呢比如,每个人都有姓名,年龄,性别这些特征.游戏里的英雄都有生命值,攻击力,防御......
  • JavaScript|流程控制
    一.概念流程控制就是来控制代码按照一定结构顺序来执行主要有3种结构顺序条件循环二.顺序顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。三.条件根据不同的条件,执行不同的路径......
  • 硬核!阿里2023版Spring全家桶进阶笔记流出,堪称Java跳槽神器
    最近小伙伴在我后台留言是这样的: 现在就这光景,不比以前,会个CRUD就有人要,即使大部分公司依然只需要做CRUD的事情......现在去面试,只会CRUD还要被吐槽: 面试造火箭,工作拧螺丝,就是现在互联网最真实的写照。很多程序员都是死磕八股文,以应对面试。这种情况无可厚非,但其实最重......
  • Java中Queue的实现方式有哪些?
    一、队列的概念Queue用于模拟队列这种数据结构,队列通常是指“先进先出”(FIFO=firstinfirstout)的容器。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。这种结构就相当于我们排队上车,先到的站在前面,先上车,后到的得等前......
  • java级联调用的空指针问题
    Java中的空指针异常(NullPointerException)通常是由于在一个对象引用上调用了空引用的方法或访问了空引用上的实例变量而引起的。当你尝试使用一个空引用时,就会抛出空指针异常。一个常见的情况是在级联调用中出现空指针异常。级联调用是指对一个对象的多个方法调用进行链式操作。例如......
  • java客户端连接zookeeper
    一、使用官方的maven依赖:<dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version></dependency>代码:Z......
  • Java实现浏览器端大文件分片上传源代码
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • 运行 Spring6 报错 Internal error: (java.lang.ExceptionInInitializerError)
    问题描述:使用2019.3.5版本的IDEA构建Spring6项目。因为Spring6要求JDK的版本最低是Java17,我就直接在2019.3.5版本的IDEA中创建新的项目时使用了JDK17。 运行项目时IDEA 出现如下报错信息:Error:Internalerror:(java.lang.ExceptionInInitializerErro......
  • ionic cordova 打包Rlease版本包出现异常Execution failed for task ':app:mergeRelea
    异常: 解决方法:找到android=》app下的build.gradle文件,如下增加如下配置 运行ioniccordovabuildandroid--release打包语句正常执行 ......
  • java List去重的代码
    一、HashSet去重我们知道 HashSet 天生具备“去重”的特性,那我们只需要将List集合转换成HashSet集合就可以了,实现代码如下:publicclassListDistinctExample{publicstaticvoidmain(String[]args){List<Integer>list=newArrayList<Integer>(){{......