java 二进制数据与16进制字符串相互转化方法
二进制数据一般输入的格式是0x45, 0x3a, 0xc3, 这种数据格式看起来是16进制的字符串,但是实际上在存储的时候每个都对应一个字节,比如0x45的二进制字节就是0100 0101,对应的16进制字符串就是0x45。实际编程过程中,经常遇到这两种格式的相互转化,在此记录一下代码。
二进制数据转化为16进制字符串(中间加的‘:'还有‘;'是为了查看下标,也可以自行去掉):
public static String bytesToHexString(byte[] src){ StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); stringBuilder.append(i + ":"); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv + ";"); } return stringBuilder.toString(); }
16进制字符串转化为二进制数据:
public static byte[] hexStringToByte(String hex) { int len = (hex.length() / 2); byte[] result = new byte[len]; char[] achar = hex.toCharArray(); for (int i = 0; i < len; i++) { int pos = i * 2; result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1])); } return result; } private static byte toByte(char c) { byte b = (byte) "0123456789abcdef".indexOf(c); return b; }
以上这篇java 二进制数据与16进制字符串相互转化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java Person,Student,GoodStudent 三个类的继承、构造函数的执行
这篇文章主要介绍了java Person,Student,GoodStudent 三个类的继承、构造函数的执行,需要的朋友可以参考下2017-02-02Java实战之用springboot+netty实现简单的一对一聊天
这篇文章主要介绍了Java实战之用springboot+netty实现简单的一对一聊天,文中有非常详细的代码示例,对正在学习Java的小伙伴们有非常好的帮助,需要的朋友可以参考下2021-04-04详解spring boot starter redis配置文件
spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service。下面通过本文给大家介绍在spring boot的配置文件中redis的基本配置,需要的的朋友参考下2017-07-07mybatis-generator-gui 工具使用(图形化工具)
基于 mybatis generator 开发一款界面工具, 本工具可以使你非常容易及快速生成 Mybatis 的 Java POJO 文件及数据库 Mapping 文件。本文重点给大家介绍mybatis-generator-gui 工具使用,感兴趣的朋友一起看看吧2022-03-03
最新评论