2015-07-17 4 views
0

Мне нравится преобразовывать массив строк в HEX.Строка в массив байтов HEX

От чего-то подобного «пример» до байта [] exampleconv = {0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65} (источник: http://www.asciitohex.com/).

Я ищу пример, например, в stackoverflow, но большинство примеров преобразует код из строки в десятичный байт или аналогичный. Я не нашел работы! пример для преобразования строки в массив с шестнадцатеричным байтом (например, примерHEX показывает выше).

+2

Там нет такого понятия, как массив байтов в шестнадцатеричном. Байт является байтом. То, как вы показываете значение байта (например, двоичный, восьмеричный, десятичный, шестнадцатеричный), зависит от вас. – CodeCaster

+1

Байт не является ни шестнадцатеричным, ни десятичным по своей природе. Вы можете отобразить его значение как десятичное число шестнадцатеричного числа. Также при преобразовании строк в байты вам нужно знать, какую кодировку символов вы хотите использовать. Для очень простых английских языков ASCII, как правило, будет прекрасным, но если вам нужны символы с других языков или специальные символы (например, emoji), вы захотите использовать somethign как unicode. – Chris

+0

Я знаю, что не такая вещь, мне нравится представлять только то, что я что. Извините за непонятое :) – esispaned

ответ

1

Байт-массивы хранятся в двоичном формате, независимо от того, как они представлены потребителю.

Вы получите больше удачи, если подумаете о формате, в котором вы читаете массив, а не о типе чисел, хранящихся в массиве.

2

Используйте Encoding.Default.GetBytes, чтобы получить байт. Пример кода:

byte[] ba = Encoding.Default.GetBytes("example"); 
// jsut to Display 
var hexString = BitConverter.ToString(ba); 
Console.WriteLine(hexString); 

вы получите "65-78-61-6D-70-6C-65"

+1

В зависимости от содержимого строки 'Encoding.Default' может и не быть. – CodeCaster

Смежные вопросы