【问题标题】:Convert hexadecimal string to hexadecimal integer in java在java中将十六进制字符串转换为十六进制整数
【发布时间】:2015-04-30 02:21:11
【问题描述】:

我有十六进制字符串,例如。 "0x103E" ,我想把它转换成整数。 表示String no = "0x103E";int hexNo = 0x103E; 我试过Integer.parseInt("0x103E",16);,但它给出了数字格式异常。 我如何做到这一点?

【问题讨论】:

  • Convert hex string to int的可能重复
  • 不是@bot 链接的问题的副本。在这里,问题是额外的0x。在另一个问题中,问题是要转换的数字的大小。
  • 从字符串中删除 0x

标签: java hex type-conversion


【解决方案1】:

您只需要省略“0x”部分(因为它实际上不是数字的一部分)。

您还需要确保您正在解析的数字实际上适合 Java 中 4 字节长的整数,因此它需要短于 8 位作为十六进制数字。

【讨论】:

  • 它给出了数字的十进制表示。我想要十六进制整数。
  • 整数总是二进制的。再次将它们转换为字符串(即使在您使用调试器查看它的时候)也需要一些基础。默认值为基数 10。如果您想再次输出基数为 16 的整数,您需要使用 Integer.toString(i, 16)(如此处所述:docs.oracle.com/javase/8/docs/api/java/lang/…
【解决方案2】:

无需去掉“0x”前缀;只需使用Integer.decode 而不是Integer.parseInt

int x = Integer.decode("0x103E");
System.out.printf("%X%n", x);

【讨论】:

    猜你喜欢
    • 2017-08-12
    • 2015-11-29
    • 2018-01-22
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    相关资源
    最近更新 更多