簡體   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