繁体   English   中英

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

[英]Hex integer to decimal integer in Java

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

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

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

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

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

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

我认为您只需要将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;
}

可能不适用于负数。

您为什么仍要这样做? 看起来很愚蠢。

使用Integer.toHexString()

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

输出:201

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM