Java中的十六进制整数到十进制整数

时间:2011-01-10 07:15:15

标签: java decimal hex

我需要将十六进制整数解析为十进制整数。

例如,十六进制: 02 01 (十进制模式下 513 )应代表 201 。 在代码中,它可以通过:

Assert.assertEquals(201, parse(0x201));

如何实现方法parse()?谢谢!

4 个答案:

答案 0 :(得分:2)

您可以使用parseInt的双参数版本:

Assert.assertEquals(513, Integer.parseInt("201", 16));

答案 1 :(得分:2)

我认为你只需要将16位基数转换为10位数字,如下所示:

int parse(int n) {
  if (n == 0) return 0;
  int digit = n & 0xf;
  assert digit >= 0 && digit <= 9;
  return parse(n >> 4) * 10 + digit;
}

可能不适用于负数。

你为什么要这样做呢?看起来很蠢。

答案 2 :(得分:2)

使用Integer.toHexString()

  

的System.out.println(Integer.toHexString(0x201));

输出:201

答案 3 :(得分:0)

我发现String.format("%x", t)适用于该功能。无论如何,感谢Mark anirvan和Keith!

相关问题