【问题标题】:hex string to decimal conversion [duplicate]十六进制字符串到十进制转换[重复]
【发布时间】:2016-12-27 10:59:05
【问题描述】:

我需要在java中将十六进制字符串转换为十进制..

我的十六进制值是“00000156A56BE980”。

我需要的输出是1471654128000

我在java中做了以下,

public static void main (String args [])
{
  String hexValue = " 00000156A56BE980 ";
  Integer result = Integer.parseInt(hexValue, 16);
 System.out.println(result);
}

但我收到以下错误,

输入字符串“00000156A56BE980”的数字格式异常

我已经尝试过给出同样的错误。对于其他十六进制值,它即将到来,但是当我们给出更大值的十六进制字符串时,它会显示错误。

我们如何将这个数字转换为十进制? 谁能帮我解决这个问题?

【问题讨论】:

  • 是的,我也尝试过 tat.. 同样的错误抛出..
  • 您会得到一个NumberFormatException,因为您要解析的字符串末尾有一个空格。摆脱空间。此外,如果该值太大而无法放入 int,您将收到此异常。

标签: java


【解决方案1】:

为了代码可以工作的两件事:

  1. 删除修剪字符串的空格
  2. 结果不适合整数,因此请改用 Long 或 BigInteger

 public static void main(String[] args) {
    String hexValue = " 00000156A56BE980 ";
    long result = Long.parseLong(hexValue.trim(), 16);
    System.out.println(result);
    }

【讨论】:

    【解决方案2】:

    对于 32 位 int 来说,这个数字太大了

    尝试改用long

    public static void main(String[] args) {
        String hexValue = "00000156A56BE980";
        long result = Long.parseLong(hexValue, 16);
        System.out.println(result);
    }
    

    注意:数字中不能有空格。您可以致电.trim() 删除它们。

    【讨论】:

      【解决方案3】:

      数字对于整数 (> 2^32) 来说太大了。

      (字符串表示的值不是int类型的值。)

      看看here

      【讨论】:

        【解决方案4】:

        这样试试

        import java.math.*;
        
        class Main {
            public static void main (String args [])
            {
                String hexValue = "00000156A56BE980";
                BigInteger result = new BigInteger(hexValue, 16);
                System.out.println(result);
            }
        }
        

        另见repl.it

        问题可能是因为您的值不适合Integer 的值范围(-231 到 232-1) - 请参阅@987654322 @

        【讨论】:

        • repl.it 仍然无法正常工作
        • new BigInteger(hexValue) 正在为我工​​作。谢谢 Dax。 .
        • @Taurus:很高兴听到。
        • @AsteriskNinja 我现在从几个系统尝试过 - 链接没有死;我猜你有一个问题......
        • 我想我遇到了错误This site can’t provide a secure connectionlol
        猜你喜欢
        • 2013-06-13
        • 1970-01-01
        • 2012-01-24
        • 2019-01-17
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 2018-01-22
        • 2020-11-07
        相关资源
        最近更新 更多