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...