import java.util.Arrays;
/**
* Created by Demon on 2019/11/6
*/
public abstract class Converts {
private final static char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
private final static byte[] undigits = new byte[128];
static {
char[] lower = "0123456789abcdef".toCharArray();
char[] upper = "0123456789ABCDEF".toCharArray();
Arrays.fill(undigits, (byte) -1);
for (byte i = 0; i < 16; i++) {
undigits[lower[i]] = i;
}
for (byte i = 0; i < 16; i++) {
undigits[upper[i]] = i;
}
}
public static String bytesToHex(byte[] bytes) {
char[] chars = new char[bytes.length << 1];
for (int i = 0; i < bytes.length; i++) {
chars[i << 1] = digits[(bytes[i] >> 4) & 0xF];
chars[(i << 1) + 1] = digits[bytes[i] & 0xF];
}
return new String(chars);
}
public static byte[] hexToBytes(String hex) {
byte[] bytes = new byte[hex.length() >> 1];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) (undigits[hex.charAt(i << 1)] << 4 | undigits[hex.charAt((i << 1) + 1)]);
}
return bytes;
}
}
Java Hex字符串与byte数组互转
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 将十六进制string转成byte数组 public static byte[] hexStringToBytes...
- 效果 把某个字节或字节数组转换成字符串01的形式,一个字节用8个"0"或"1"字符表示。比如:byte(3) --...
- java socket通信中,UDP采用DatagramSocket进行接收receive和发送send, TCP...