2014-08-27 76 views
-1

我试图将“0x16”和“0b10”转换为十进制使用“Integer.parseInt(”0x16“,10)”,但我保持收到这个错误:如何将字符串转换为十进制使用Integer.parseInt(字符串,int)

Exception in thread "main" java.lang.NumberFormatException: For input string: "0x16" 
+0

[documentation](http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29)表示这是正确以显示该错误。 – usr2564301 2014-08-27 08:39:05

+0

你不应该有十六进制/二进制指标,并且你的基础是错误的。参见:http://stackoverflow.com/questions/15735079/convert-from-one-base-to-another-in-java – 2014-08-27 08:39:22

回答

2

的Integer.parseInt功能首先argumet是表达一个数字的字符串,和第二argumet是碱(或基数)。

“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'等) Ex: “0x16”:parseint(“16”,16); “0b10”:parseint(“10”,2);

相关问题