我正在尝试转换包含十六进制值的字节数组。
byte[] bytes = {48, 48, 48, 48, 48, 51, 51, 99}
例如:48、48、48、48、48、51、51、99是0000033c,转换为int是828。 转换的唯一方法是将其转换为 String ,然后从String中解析整数。
public static int ConvertValueFromBytes(byte[] bytes)
{
String b = new String(bytes);
return Converter.ConvertHexToInt(b);
}
这里的主要问题是性能,多次调用它可能会导致性能问题。当尝试从字节数组解析int值时,我得到了大量数字,这就是为什么我从String进行解析以获取正确的值。 有更好的方法或解决方案吗?
答案 0 :(得分:1)
虽然目前还不清楚为什么要用这种方式表示数据,但无需使用字符串即可轻松进行转换:
int v = 0;
for (byte b : bytes) {
v = 16 * v + Character.getNumericValue(b);
}