Немного странно, но я пытаюсь написать управляющую программу для монитора, использующего последовательный порт RS232 для получения команд в шестнадцатеричном, 0xFF, нотации, т. Е. 0x00.
Проблема у меня есть что я не могу найти способ взять пользовательский ввод, который является десятичным значением, например, 55, и преобразовать его в его байтовую, шестнадцатеричную форму с вышеупомянутым форматом. Использование метода Convert, встроенного в Visual Studio, дает мне правильное значение, которое мне нужно, но без требуемого 0x в начале.
Я новичок в использовании байтов и байтовых массивов в C#, так что извините, если Я упустил простой метод форматирования, который решит его.
Ниже приведен метод массива строк в байтах, который я нашел здесь, и он полезен, но дает мне неправильный формат для байтов.
private static byte[] StringToByteArray(String hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hex.Substring(i+2, 2), 16);
return bytes;
}