@davron2813

Как сконвертировать строку decimal to hex в с#?

Привет возник вопрос как можно сконвертировать decimal to hex ?
например вводите 10008 и получаете 2718 вот сайт где можно сконвертировать но как сделать тоже самое в с# www.binaryhexconverter.com/decimal-to-hex-converter ?
  • Вопрос задан
  • 3171 просмотр
Пригласить эксперта
Ответы на вопрос 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
string hex = 10008.ToString("x2");
Посмотреть пример
int num = 255;
string hex = num.ToString("x2");
// переменная hex будет иметь значение ff
hex = num.ToString("X2");
// переменная hex будет иметь значение FF

Массив байт в HEX:
byte[] data = new byte[] {1,2,3,4,5,128,255};
string hex = String.Join(" ", data.Select(b=> b.ToString("x2")).ToArray());
Console.WriteLine(hex);

На выходе будет:
01 02 03 04 05 80 ff

Набор символов в HEX:
string data = "Привет, человеки!";
string hex =  String.Join(" ", data.ToString().Select(ch => ((byte)ch).ToString("x2")).ToArray());
Console.WriteLine(hex);

или лучше через Encoding получить массив байт из строки:
string data = "Привет, человеки!";
string hex =  String.Join(" ", System.Text.Encoding.GetEncoding(1251).GetBytes(data).Select(b => b.ToString("x2")).ToArray());
Console.WriteLine(hex);

На выходе будет:
cf f0 e8 e2 e5 f2 2c 20 f7 e5 eb ee e2 e5 ea e8 21

В String.Join первым параметром, вместо пробела, можно указать любой набор символов, которым будет объединен массив полученных hex-данных.
string data = "Привет, человеки!";
string hex =  String.Join("-", System.Text.Encoding.GetEncoding(1251).GetBytes(data).Select(b => b.ToString("x2")).ToArray());
Console.WriteLine(hex);

На выходе:
cf-f0-e8-e2-e5-f2-2c-20-f7-e5-eb-ee-e2-e5-ea-e8-21
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы