【发布时间】:2021-10-22 20:24:58
【问题描述】:
我正在读取一系列十六进制值,使用代码读取值`0x03B6:
Integer.parseInt("0x03B6",16);
导致异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "0x03B6"
但是,如果我删除值开头的 0x,则结果将正确转换为 HEX:
Integer.parseInt("03B6",16)
0X 是表示它是十六进制值的约定吗? 03B6 是有效的十六进制?
使用十六进制计算器 - https://www.calculator.net/hex-calculator.html 也无法识别 0x03B6,但可以识别 03B6
【问题讨论】:
-
0x是十六进制文字的前缀。参见here。 -
请注意
"0x03B6"不是十六进制文字;这是一个字符串文字。 -
@RobertHarvey 谢谢,所以我可以从字符串中删除“0x”来解析?
-
没错。
-
你读过javadoc吗?