Преобразование между байтовыми массивами и шестнадцатеричными строками в C#

В этом примере используются методы расширения для преобразования между байтовыми массивами и шестнадцатеричными строками. Он добавляет метод расширения ToHex в тип byte [] и метод расширения ToBytes в класс string.

Чтобы создать метод расширения, создайте открытый статический класс. Дайте ему методы, где объявление первого параметра начинается с ключевого слова this. Этот тип параметра определяет класс, к которому применяется метод.

В следующем коде показан метод расширения byte [] типа ToHex. Обратите внимание, как первый параметр имеет ключевое слово this и имеет тип byte [].

Этот метод вызывает BitConverter.ToString, чтобы преобразовать массив байтов в строку, содержащую шестизначные шестнадцатеричные значения в формате 54-00-6F-00-20. В коде используется метод string класса Replace для замены дефиса на нужный разделительный символ.

К сожалению, класс BitConverter не имеет обратного метода, который преобразует строку формы 54-00-6F-00-20 обратно в a байт, поэтому вам нужно написать свой собственный. К счастью, это не сложно. В следующем коде показан способ расширения string класса ToBytes.

Этот метод предполагает, что строка состоит из двухзначных шестнадцатеричных значений, разделенных символом разделителя. Он использует третий символ строки в качестве разделителя. Затем он использует метод string класса Split для разделения строки в разделителях.

Затем код перебирает шестнадцатеричные значения, использует Convert.ToByte для преобразования каждого обратно в значение byte и сохраняет результаты в bytes . Когда он заканчивается, метод возвращает этот массив.

При нажатии левой кнопки & gt; , программа использует следующий код для преобразования строки в шестнадцатеричное представление.

Этот код использует объект System.Text.UnicodeEncoding для преобразования строки в массив byte. Затем он использует метод расширения ToHex для преобразования массива в строку и отображает результат.

При нажатии правой кнопки & gt; , программа использует следующий код для преобразования шестнадцатеричного представления обратно в строку.

Источник: http://csharphelper.com/blog/2014/09/convert-between-byte-arrays-and-hexadecimal-strings-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector