У меня есть шестнадцатеричная строка, которую мне нужно преобразовать в байтовый массив. Лучший способ (т. Е. Эффективный и наименьший код):
string hexstr = "683A2134";
byte[] bytes = new byte[hexstr.Length/2];
for(int x = 0; x < bytes.Length; x++)
{
bytes[x] = Convert.ToByte(hexstr.Substring(x * 2, 2), 16);
}
В случае, если у меня есть 32-битное значение, я могу сделать следующее:
string hexstr = "683A2134";
byte[] bytes = BitConverter.GetBytes(Convert.ToInt32(hexstr, 16));
Однако, что в общем случае? Есть ли лучшая встроенная функция или более понятный (не обязательно более быстрый, но все же эффективный) способ сделать это?
Я бы предпочел встроенную функцию, так как, кажется, она есть для всех (вполне распространенных вещей), кроме этого конкретного преобразования.