【问题标题】:How to convert a hex to a number that looks the same when printed in decimal?如何将十六进制转换为以十进制打印时看起来相同的数字?
【发布时间】:2014-02-12 15:59:42
【问题描述】:

我在 Java 中有以下代码:

int hex = 0x63;

6316的十进制值等于9910。我想将此十六进制值转换为等于 6310 的十进制值。

【问题讨论】:

  • 不,十六进制值是 0x63,我想根据十六进制值得到一个十进制值 63
  • 如果你有 0x1F 怎么办?
  • 现在只考虑数字

标签: java hex decimal


【解决方案1】:

十六进制值是0x63,我想根据十六进制值得到一个十进制值63

这称为Binary-coded decimal (BCD) 表示。有很多方法可以将数字从 BCD 转换为十进制。也许最简单的方法是将其打印为十六进制,然后将其解析为十进制:

int hex = 0x63;
int dec = Integer.valueOf(Integer.toHexString(hex), 10);

Demo on ideone.

【讨论】:

    【解决方案2】:

    你可以用这个:

    int hex = 0x63;
    int decimalValue = Integer.parseInt(hex+"", 10);
    System.out.println("Decimal value is :" + decimalValue);
    

    【讨论】:

      【解决方案3】:

      试试这个:

      int hex = 0x63F2FC;//just an example (containg letters)
      String hexStr = Integer.toHexString(hex);
      String decimal = "";
      char[] tmp = hexStr.toCharArray();
      for (int i = 0; i < tmp.length ; i++)
          decimal += (Character.isDigit(tmp[i])?tmp[i]+"":"");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-07
        • 2014-03-19
        • 2015-01-26
        • 1970-01-01
        相关资源
        最近更新 更多