如何在Java中将ASCII转换为十六进制值。
例如:
ASCII:31 32 2E 30 31 33
十六进制:12.013
如何在Java中将ASCII转换为十六进制值。
例如:
ASCII:31 32 2E 30 31 33
十六进制:12.013
String s = new String(new char[] {
0x31, 0x32, 0x2E, 0x30, 0x31, 0x33
});
System.out.println(s); // prints "12.013"
如果你有一个字符串,想要将其char
以十六进制打印出来,那么可以按照以下方法进行:
for (char ch : "12.013".toCharArray()) {
System.out.print(Integer.toHexString(ch) + " ");
} // prints "31 32 2e 30 31 33 "
%H
格式字符串: for (char ch : "12.013".toCharArray()) {
System.out.format("%H ", ch);
} // prints "31 32 2E 30 31 33 "
由于您的“hex”字符串实际上是十进制的,因此不太清楚您的问题。我认为您正在尝试获取表示双精度浮点数的ASCII字符串的值,并将其转换为双精度浮点数形式,在这种情况下,使用Double.parseDouble应该足够满足您的需求。如果您需要输出双精度浮点数值的十六进制字符串,则可以使用Double.toHexString。请注意,每当调用原始包装器类的解析函数时,您需要捕获NumberFormatException。
byte[] ascii = {(byte)0x31, (byte)0x32, (byte)0x2E, (byte)0x30, (byte)0x31, (byte)0x33}; String decimalstr = new String(ascii,"US-ASCII"); double val = Double.parseDouble(decimalstr); String hexstr = Double.toHexString(val);以上代码用于将一个字节数组转换成对应的十进制小数,并将其转换成十六进制字符串。
0x31 == 49
,而 ASCII 49 是'1'
。 - polygenelubricants