0

我有以下代码

temp = "0x00"
String binAddr = Integer.toBinaryString(Integer.parseInt(temp, 16)); 

为什么我会收到以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "0x00"

4

5 回答 5

1

由于字符串包含0x,请使用Integer.decode(String nm)

String binAddr = Integer.toBinaryString(Integer.decode(temp));
于 2013-10-21T11:44:47.510 回答
0

摆脱 javadocs 中的 '0x':

字符串中的字符必须都是指定基数的数字(由 Character.digit(char, int) 是否返回非负值决定),除了第一个字符可能是 ASCII 减号 '-' ('\u002D ') 表示负值或 ASCII 加号 '+' ('\u002B') 表示正值。返回结果整数值。

于 2013-10-21T11:47:08.163 回答
0

BigInteger.toString(radix) 将解决这个问题

参考方法说明

希望能帮助到你。

于 2013-10-21T11:48:27.597 回答
0

因为前导0x不是有效的 base-16 数字的一部分——它只是向读者表明数字是十六进制的约定。

于 2013-10-21T11:44:11.640 回答
0

0x用于整数文字,例如:

int num = 0xCAFEBABE;

但不是可解析的格式。尝试这个:

temp = "ABFAB"; // without the "0x"
String binAddr = Integer.toBinaryString(Integer.parseInt(temp, 16)); 
于 2013-10-21T11:52:04.510 回答