Я создал следующую функцию, которая будет работать по запросу (преобразование строки HEX в BitArray). Я не уверен в эффективности этой функции, но сейчас моя главная проблема заключается в том, что функция Convert.ToInt64 специфична для порядка байтов. Когда это будет перенесено на другие чипсеты, мы получим другие результаты (или исключения). Так может ли кто-нибудь придумать альтернативный способ сделать это преобразование???
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;
}
}
}
}
Я удалил большую часть обработки ошибок/исключений, чтобы сохранить размер, поэтому, пожалуйста, простите это.