【发布时间】:2020-04-14 14:26:11
【问题描述】:
我有一个十六进制字符串string hex = A5A6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9AAAAAAAAA9552,我想将其转换为布尔数组。
我已经找到了一个可以将其转换为字节数组的函数,但后来我发现我需要一个布尔数组来代替。如何更改此功能/创建一个为我完成工作的新功能?
private byte[] ConvertHexStringToByteArray(string hexString)
{
if (hexString.Length % 2 != 0)
{
throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, "The binary key cannot have an odd number of digits: {0}", hexString));
}
byte[] data = new byte[hexString.Length / 2];
for (int index = 0; index < data.Length; index++)
{
string byteValue = hexString.Substring(index * 2, 2);
data[index] = byte.Parse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
}
return data;
}
感谢任何帮助,在这里感觉有点失落!
编辑:
如果遇到十六进制值 A5,例如,我想返回一个 bool 数组,其中包含:
bool = {true, false, true, false, false, true, false, true, false, false, false, false, false, false, false, false}
【问题讨论】:
-
你确定是字节数组(byte = 0 - 255)还是位数组(bit = 0 - 1)??
-
A byte[] 可以解释为“bool 数组”,因为您将每个位作为 bool 值......然后您只需要一个检查特定位位置并返回 bool 的函数。
-
我没有得到你的要求?!? - 你将你的字符串分成两个块,你最终会得到这6个唯一值
A5,A6,AA,9A,95,52- 为什么应该@987654330 @ 是真的?或52?等等?你判断真假的标准是什么? -
您希望
bool[]看起来像完全吗?您有示例输入/输出吗?请注意,bool[]的效率难以置信,可能还有更好的选择,例如BitArray -
弄清楚你的布尔值是如何编码的,可以是每比特或每字节,或者介于两者之间的任何东西。你的字符串的来源应该可以告诉你。