java byte 16进制转换
2023-09-11 14:17:58 时间
整型转16进制:
int devIdInt = Integer.parseInt(devId);
String devIdString = Integer.toHexString(devIdInt);
16进制转为字节:
byte devBin = (byte) Integer.parseInt(devIdString, 16);
byte devBin =Integer.valueOf(devIdString, 16).byteValue();
byte devBin =Byte.parseByte(devIdString, 16);
在Java中想把 9D 转成 byte,首先想到的是
- byte v = Byte.parseByte("9D", 16);
结果得到一个java.lang.NumberFormatException,说值的范围越界了。
是的,byte的范围是-128~127,如果把9D当成正数来转换,结果是157,当然越界了。
问题是我用的是Byte.parseByte()啊……难道Java还不能明确我是要把2位16进制转换为byte么?最高位是1的情况,直接给我转换成负数-99就行,干嘛非要转换成157再告诉我越界呢……神仙!
无奈+无语之后当然还是要解决问题的,Byte.parseByte()不行,那只好用Integer.parseInt()啦……
所以有这样两个处理办法
- byte v = (byte) Integer.parseInt("9D", 16);
- // 或者
- byte v = Integer.valueOf("9D", 16).byteValue();
相关文章
- [Java基础] java的守护线程与非守护线程
- 【Java】如何获取文件的创建时间、更新时间
- Java实现 LeetCode 767 重构字符串(ASCII的转换)
- Java实现 蓝桥杯 历届试题 斐波那契
- Java实现 蓝桥杯 历届试题 国王的烦恼
- Java实现 蓝桥杯VIP 算法提高 洗牌
- Java实现 蓝桥杯VIP 算法提高 Torry的困惑(提高型)
- Java实现 蓝桥杯VIP 算法训练 ALGO-16进制转换
- Java实现 蓝桥杯VIP基础练习 矩形面积交
- 【JAVA】 01-Java基础知识
- 《java虚拟机》----虚拟机字节码执行引擎
- 诊断 Java 代码: 提高 Java 代码的性能 尾递归转换能加快应用程序的速度,但不是所有的 JVM 都会做这种转换
- java.lang.OutOfMemoryError: Java heap space 解决方法
- 【JAVA】eclipse里代码整个前移或者后移的快捷键
- Atitit onvif协议获取rtsp地址播放java语言attilx总结
- Atitit.Java exe bat 作为windows系统服务程序运行
- 【Java】java 环境配置(详细教程)
- 详解jvm之java类加载机制和类加载器(ClassLoader) 深入理解Java类加载器(ClassLoader) 如何自定义类加载器 深入说明双亲委派 双亲委派模型的破坏者-线程上下文类加载器
- Java 异常解决之java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Java中使用Jackson,对JSON和对象进行转换
- java对象和json数据转换实现方式3-使用jackson实现
- Java 8 lambda表达式示例
- hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)。
- 【java】Java 内存模型