【问题标题】:Converting mac address to integer resulting in number format exception将 mac 地址转换为整数导致数字格式异常
【发布时间】:2015-02-27 09:02:35
【问题描述】:
System.out.println(Integer.parseInt("4B5CE3D77A73",16);

给我一​​个数字格式异常。并且mac地址是从本站生成的有效地址http://www.miniwebtool.com/mac-address-generator/

我错过了什么吗?

【问题讨论】:

  • 以太网和无线 LAN 有 6 字节(48 位)MAC 地址,而 Java 中的 int 只有 32 位。

标签: java jakarta-ee


【解决方案1】:

看起来这个数字大于 Integer 可以容纳的数字。尝试长:

Long.parseLong("4B5CE3D77A73",16)

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

【讨论】:

  • 嘿,谢谢paco,现在我觉得很愚蠢。顺便说一句,我怎么知道最新的问题 java.lang.这样我就可以帮助别人。
  • 在您的问题下单击 Java 标签或更好:在 Stack Overlow 的搜索框中写 [java]
  • mac 中任何与此相关的桌面应用程序,或一些 rss 提要,无论如何感谢您的帮助
  • 您应该将accept 作为任何正确答案的有效答案。因此,该问题被标记为已解决,将来可以帮助其他人。您还为您和回答的人提供了一些reputation
  • 嘿,抱歉,paco,我是新来的,我认为单击箭头标记是接受@Paco 答案的方式。我接受了你的回答。
【解决方案2】:

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

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

尝试以下方法:

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

【讨论】:

  • 感谢您的回答 :) 堆栈溢出比询问办公桌后面的人要快
【解决方案3】:

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

try this

【讨论】:

  • 我认为这并不能真正回答问题。最好只留下评论
猜你喜欢
  • 2015-12-31
  • 2017-10-07
  • 2023-03-31
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多