gpt4 book ai didi

Java 十六进制字节数组转换为整数而不先转换为字符串

转载 作者:行者123 更新时间:2023-11-30 05:59:32 25 4
gpt4 key购买 nike

我正在尝试转换保存十六进制值的字节数组。

byte[] bytes = {48, 48, 48, 48, 48, 51, 51, 99}

例如:48, 48, 48, 48, 48, 51, 51, 99 为 0000033c,转换为 int 为 828。唯一的转换方法是将其转换为字符串,然后从字符串中解析整数。

 public static int ConvertValueFromBytes(byte[] bytes)
{
String b = new String(bytes);
return Converter.ConvertHexToInt(b);
}

这里的主要问题是性能,多次调用会导致性能问题。当尝试从字节数组解析 int 值时,我得到大量数字,这就是为什么我从 String 解析,以获得正确的值。有没有更好的方法或解决方案?

最佳答案

虽然还不清楚为什么要以这种方式表示数据,但无需使用字符串即可轻松转换:

int v = 0;
for (byte b : bytes) {
v = 16 * v + Character.getNumericValue(b);
}

Ideone demo

关于Java 十六进制字节数组转换为整数而不先转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52493237/

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