我正在尝试使用“Integer.parseInt(”0x16“,10)将”0x16“和”0b10“转换为十进制”,但我一直收到此错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "0x16"
答案 0 :(得分:2)
Integer.parseint函数的第一个参数是一个表示数字的字符串,第二个参数是一个基数(或基数)。
“0x16”由两部分组成,“0x”表示基数为16,“16”表示十六进制数。
如果要获取整数值“0x16”,代码将为
int aValue;
aValue = Integer.parseint("16",16);
然后,您可以通过以下代码
显示十进制值printf("%d" , aValue);
要点是 1.二进制,十进制和十六进制是通过字符串表示整数值的格式。 2.“0x16”和“0b10”是'base'和'value'的组合(在字符串中)。 3.要将组合字符串转换为整数,请使用Inter.parseint,其中'string'作为第一个参数,'base'作为第二个参数。 (0x表示'base是16',0b表示'base是2'等) 例如: “0x16”:parseint(“16”,16); “0b10”:parseint(“10”,2);