我目前有一个应用程序,我通过蓝牙接收2个值eidogg. 0 e 15。我现在想以十进制值显示这些值。
代码如下所示:
private static final char[] DIGITS_LOWER = {'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
private static final char[] DIGITS_UPPER = {'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
public static String formatHexString(byte[] data) {
return formatHexString(data, false);
}
public static String formatHexString(byte[] data, boolean addSpace) {
if (data == null || data.length < 1)
return null;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.length; i++) {
String hex = Integer.toHexString(data[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex);
if (addSpace)
sb.append(" ");
}
return sb.toString().trim();
}
}
我该如何转换这个字符串,以便将值转换回十进制值呢?
2条答案
按热度按时间ix0qys7i1#
我感到困惑,因为我不知何故认为字节必须显示在十六进制值。它没有越过我的头脑,我可以只展示两个字节的十进制值。目前有我想要的与以下代码:
blpfk2vs2#
可以使用java.lang.integer库的方法parseInt。
简单地执行
Integer.parseInt(hexString,16);
有关详细信息,请参阅此处的文档。