Hex十六进制字符工具类
/**
* 转换成ASCII
*
* @param hexStr 传入字符
* @return
*/
private static String parseAscii(String hexStr) {
StringBuilder output = new StringBuilder("");
for (int i = 0; i < hexStr.length(); i += 2) {
String str = hexStr.substring(i, i + 2);
output.append((char) Integer.parseInt(str, 16));
}
return output.toString();
}
/**
* 转成十进制
*
* @param hexStr 十六进制字符串
* @return 十进制字符串
*/
public static String parseDec(String hexStr) {
hexStr = hexStr.toUpperCase();
int max = hexStr.length();
int result = 0;
for (int i = max; i > 0; i--) {
char c = hexStr.charAt(i - 1);
int algorism = 0;
if (c >= '0' && c <= '9') {
algorism = c - '0';
} else {
algorism = c - 55;
}
result += Math.pow(16, max - i) * algorism;
}
return String.valueOf(result);
}
/**
* 转换成二进制
*
* @param hexStr 十六进制字符串
* @return 二进制字符串
*/
public static String parseBin(String hexStr) {
StringBuilder bin = new StringBuilder();
StringBuilder binFragment = null;
int iHex;
hexStr = hexStr.trim();
hexStr = hexStr.replaceFirst("0x", "");
for (int i = 0; i < hexStr.length(); i++) {
iHex = Integer.parseInt("" + hexStr.charAt(i), 16);
binFragment = new StringBuilder(Integer.toBinaryString(iHex));
while (binFragment.length() < 4) {
binFragment.insert(0, "0");
}
bin.append(binFragment);
}
return bin.toString();
}