将mac地址转换为整数导致数字格式异常

时间:2015-02-27 09:02:36

标签: java java-ee

System.out.println(Integer.parseInt("4B5CE3D77A73",16);

引发了一个数字格式异常。并且mac地址是从该站点生成的有效地址http://www.miniwebtool.com/mac-address-generator/

我在这里想念一下吗?

3 个答案:

答案 0 :(得分:7)

看起来这个数字大于整数可以容纳的数字。尝试使用Long:

Long.parseLong("4B5CE3D77A73",16)

Documentation声明它会抛出NumberFormatException - if the string does not contain a parsable integer。不仅如果字符串包含无效字符,而且如果数字大于Integer.MAX_VALUE

答案 1 :(得分:2)

该数字不适合整数,其最大值为:

System.out.println(Integer.MAX_VALUE); // prints 2147483647

尝试以下方法:

Long.parseLong("4B5CE3D77A73",16); // 0x4B5CE3D77A73 == 82862331624051

答案 2 :(得分:0)

我认为你应该将int转换为十六进制格式。 这可能会对你有所帮助。

try this