В C #, как я могу преобразовать массив байтов в строку шестнадцатеричных чисел? - PullRequest
2 голосов
/ 28 января 2010

Какой самый простой способ преобразования массива байтов в строку шестнадцатеричных чисел в C #

Ответы [ 3 ]

2 голосов
/ 28 января 2010

Это должно сработать ... BitConverter лучше, но это дает вам больше контроля (без дефисов), и вы можете полюбоваться лямбдами, если пожелаете

 public string byteToHex(byte[] byteArray) {
    StringBuilder result = new StringBuilder();
    foreach (byte b in byteArray) {
        result.AppendString(b.ToString("X2"));
    }
    return result.ToString();
 }
2 голосов
/ 28 января 2010

BitConverter.ToString http://msdn.microsoft.com/en-us/library/system.bitconverter.tostring.aspx

Вы получите дефисы между байтами в строке, но они легко удаляются.

1 голос
/ 28 января 2010

Вот расширение, которое я использую, когда мне нужен строчный гекс. например Facebook требует строчных букв для подписи данных POST.

    private static string ToLowerCaseHexString(this IEnumerable<byte> hash)
    {
        return hash
            .Select(b => String.Format("{0:x2}",
                                       b))
            .Aggregate((a, b) => a + b);
    }

Может быть быстрее использовать StringBuilder поверх linq. Агрегат, но передаваемые байты массивов короткие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...