我创建了以下函数,它将按要求执行(将HEX字符串转换为BitArray).我不确定函数的效率,但我现在的主要问题是Convert.ToInt64函数是特定于endian的.当将其移植到备用芯片组时,我们将得到不同的结果(或例外).所以有人能想到另一种方法来进行这种转换吗???
public BitArray convertHexToBitArray(string hexData)
{
string binary_values = "";
BitArray binary_array;
if (hexData.Length <= "FFFFFFFFFFFFFFFF".Length) // Max Int64
{
binary_values = Convert.ToString(Convert.ToInt64(hexData, 16), 2);
binary_array = new BitArray(binary_values.Length);
for (int i = 0; i < binary_array.Length; i++)
{
if (binary_values[i] == '0')
{
binary_array[i] = false;
}
else
{
binary_array[i] = true;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我删除了大部分错误/异常处理,以保持这个大小,所以请原谅.