У меня есть строка и вы хотите преобразовать ее в массив байтов шестнадцатеричного значения с помощью C#.
, например, «Hello World!» в байт [] = Val новый байт [] {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21} ;,Как преобразовать строку в массив байтов
Я вижу следующий код в Converting string value to hex decimal
string input = "Hello World!";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
// Get the integral value of the character.
int value = Convert.ToInt32(letter);
// Convert the decimal value to a hexadecimal value in string form.
string hexOutput = String.Format("0x{0:X}", value);
Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
Я хочу, чтобы это значение в массив байт, но не могу писать, как этот
byte[] yy = new byte[values.Length];
yy[i] = Convert.ToByte(Convert.ToInt32(hexOutput));
я пытаюсь этот код ссылается из How to convert a String to a Hex Byte Array?, где я проходил шестнадцатеричное значение 48656C6C6F20576F726C6421, но я получил десятичное значение не гекс.
public byte[] ToByteArray(String HexString)
{
int NumberChars = HexString.Length;
byte[] bytes = new byte[NumberChars/2];
for (int i = 0; i < NumberChars; i += 2)
{
bytes[i/2] = Convert.ToByte(HexString.Substring(i, 2), 16);
}
return bytes;
}
и я также попробовать код с How can I convert a hex string to a byte array?
Но когда я использовал Convert.ToByte или byte.Parse, изменение значения до десятичного значения. Как мне это сделать?
Заранее спасибо
Я хочу отправить 0x80 (т.е., 128) к последовательному порту, но когда я скопировать и вставить эквивалент символов в 128 к переменному «входу» и преобразовать байты, я получил 63 (0x3F). Поэтому я думаю, что мне нужно отправить шестнадцатеричный массив. Думаю, у меня есть неправильная идея. Pls видит снимок экрана.
Сейчас я решить эту проблему, чтобы объединить массивы байтов.
string input = "Hello World!";
byte[] header = new byte[] { 2, 48, 128 };
byte[] body = Encoding.ASCII.GetBytes(input);
Может быть, вы должны сначала понять [Binary системы счисления] (http://en.wikipedia.org/wiki/Binary_numeral_system) и как компьютер работает с данными и как двоичные данные представлен человеком (например, [ASCII] (http://en.wikipedia.org/wiki/ASCII)), прежде чем пытаться конвертировать между ними. –