【问题标题】:Java int to hex with 0xJava int 到 0x 的十六进制
【发布时间】:2015-04-07 22:03:12
【问题描述】:

我正在尝试将 int 转换为格式为 0x12 0x2B 等的十六进制。有没有类似python的东西:https://docs.python.org/2/library/functions.html#hex 要完成这个,还是我需要通过许多不必要的步骤来解决这个问题?

我需要在下面得到类似的东西:

int []hexInt={0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01}; 

【问题讨论】:

  • 你的意思是你想要一个十六进制的数字的String表示?
  • 我需要 int 作为 show int [] hexInt={0x00 等等}
  • 它不是重复的。我可以将整数转换为十六进制,但我不能将它转换为像 0x1b 这样的十六进制。如果我使用 0x1B 的 1B,那么我没有得到我需要的东西。
  • 显示在哪里?我不明白你的目标。您是声明int[] 还是要显示这些字符?

标签: java hex zero


【解决方案1】:

你可以声明一个String,它等于"0x" + Integer.toHexString(int)

【讨论】:

  • 我这样做了,但是当我想将字符串解析为 int 时,它无法将 0x1b 解析为 int,它会引发数字格式异常,但它接受数组 int [] hexInt={0x1b} 我很困惑。
  • 按照我上面说的做,然后以这种方式存储Integer.parseInt(num.substring(2), 16);。这将在解析之前从字符串中删除0x
  • @Anak1n 要将 hexString 解析回十进制 int,您需要删除 0x 部分并提供像 Integer.parseInt("100",16) 这样的基数将被解析为 256
  • Integer.decode 实际上会正确处理 0x 前缀。
【解决方案2】:
public static String intToHexStr(int i){
    return "0x"+String.format("%2s", Integer.toHexString(i)).replace(' ', '0');
}

【讨论】:

    【解决方案3】:

    也许这已经很晚了,但这是您问题的答案:

    Integer.parseInt(String.format("%X", intValue),16)
    

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 2012-04-27
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多