I currently have an application where I receive 2 values e.g. 0e 15 through bluetooth.
I now want to display these in decimal values.
The code is as follows:
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();
}
}
How would I go about into converting this string so I can decimal values back?
2
Answers
I was confused as I somehow thought bytes had to be displayed in hexadecimal value. It didn't cross my mind that I could just showcase two bytes in decimal value. Currently have what I want with the following code:
You can use java.lang.Integer library’s method parseInt.
simply do
Integer.parseInt(hexString,16);
For more information you can refer to documentation here.