您的位置:首页 > 编程语言 > Java开发

java 无符号16进制字符串转换为有符号Byte[]

2017-12-11 13:43 417 查看
/**
* 无符号16进制字符串(两个字符代表一个数,例如:EF8C64C8AC298976B7B43E4B9A9E34AD)转换为有符号Byte[]
*
* @param src Byte字符串,每个Byte之间没有分隔符
* @return byte[]
*/
public static byte[] hexStringToByte(String src) {
int m = 0, n = 0;
int l = src.length() / 2;
System.out.println(l);
byte[] ret = new byte[l];
for (int i = 0; i < l; i++) {
m = i * 2 + 1;
n = m + 1;
//16进制转10进制,并且无符号byte 转有符号byte
int temp = Integer.decode("0x" + src.substring(i * 2, m) + src.substring(m, n));
if(temp>127)ret[i]=(byte)(temp-256);else ret[i]=(byte)temp;
}
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java