gpt4 book ai didi

java - 将十六进制字符串转换为整数

转载 作者:IT老高 更新时间:2023-10-28 11:27:14 27 4
gpt4 key购买 nike

我正在尝试将一个长度为 8 个字符的十六进制代码的字符串转换为一个整数,以便我可以进行 int 比较,而不是对许多不同值进行字符串比较。

我知道这在 C++ 中相当简单,但我需要在 Java 中完成。我需要满足的测试用例本质上是将“AA0F245C”转换为int,然后再返回该字符串,以便我知道它转换正确。

我尝试了以下方法:

int decode = Integer.decode("0xAA0F245C");  // NumberFormatException
int decode2 = Integer.decode("AA0F245C"); //NumberFormatException
int parseInt = Integer.parseInt("AA0F245C", 16); //NumberFormatException
int valueOf = Integer.valueOf("AA0F245C", 16); //NumberFormatException

我也试过一次做两个字符并将结果相乘,转换有效,但数字不正确。

int id = 0;
for (int h = 0; h < hex.length(); h= h+2)
{
String sub = hex.subSequence(h, h+2).toString();

if (id == 0)
id = Integer.valueOf(sub, 16);
else
id *= Integer.valueOf(sub, 16);
}
//ID = 8445600 which = 80DEA0 if I convert it back.

您知道,我不能使用第三方库,所以这必须在 Java 标准库中完成。

提前感谢您的帮助。

最佳答案

对于 int(4 字节且有符号)来说实在是太大了。

使用

Long.parseLong("AA0F245C", 16);

关于java - 将十六进制字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com