这是一个有效的十六进制值吗?

我正在读取一系列十六进制值,使用代码读取值`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

回答

十六进制数只是03B6. 十六进制数字是 0-9 和 AF,这就是为什么在输入“x”时会出现异常的原因。

在许多语言中,您可以通过添加0x前缀来编写十六进制常量。这告诉编译器后面的数字应该以基数 16 而不是基数 10 来解释。 10是 10,0x10是 16。像 C 这样的一些语言也支持八进制(010is 8),而其他一些语言支持二进制(0b10is 2)。C 是我所知道的最早使用这种 0 前缀思想的语言。

parseInt但是,该方法仅解析数字,因此您必须只提供03B6,并使用单独的参数来表示基数为 16。


以上是这是一个有效的十六进制值吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>