Как преобразовать число в строке в шестнадцатеричное значение?

У меня есть текстовый файл (test.txt), с шестнадцатеричными данными в нем, когда я его открываю, это выглядит так:

test.txt:
00 FF 0F 00...так далее.

Я прочитал их в.NET:

byte [] in = System.IO.File.ReadAllBytes("D:/test.txt");

На данный момент, я могу видеть мою строку как:

in[0] = 0x30 // first 0 in[1] = 0x30 // second 0 in[2] = 0x20 // space in[3] = 0x46 // F char ...

Я в порядке с удалением каждого пробела и символов \n\r, но я хочу иметь однострочное преобразование для 0x30 в 0x0 и 0x46 в 0xF

ИЛИ ЖЕ

Однострочное решение для преобразования строки:

string s = 00FF10 в byte [] a = 0x0, 0xFF, 0x10

1 ответ

Решение

Читать содержимое файла как string, разделить его, а затем проанализировать каждую часть как байт.

Пример без проверки ввода для упрощения:

var bytes = "00 FF 0F 00"
    .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(s => byte.Parse(s, System.Globalization.NumberStyles.AllowHexSpecifier))
    .ToArray();
Другие вопросы по тегам