【发布时间】:2019-02-28 18:51:57
【问题描述】:
我正在尝试转换包含十六进制值的字节数组。
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 解析以获得正确值的原因。 有没有更好的方法或解决方案?
【问题讨论】:
-
你的逻辑中有些东西没有加起来。为什么要将十六进制值的字符串表示存储在字节数组中?你的字节数组应该看起来像这样:
byte[] bytes = {0, 0, 3, 60},或者甚至只是{3, 60}。 -
我有一个大的一串十六进制值,其中包含多达 2000 多个字符。我正在做的是将它们分成更小的部分以获得 int 值。
-
@TimBiegeleisen 我不需要字符串值,我需要整数。
-
没有必要基于你的十六进制字符串的字符值。每两个字符代表一个字节,所以你应该这样解析它们。