dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Перевод HEX в ASCII

Останнє повідомлення 04-01-2007, 7:52 від slash. 4 відповіді.
Сортувати: Попереднє Наступне
  •  04-01-2007, 5:46 1722

    Перевод HEX в ASCII

    Мне нужно перевести строку, содержащую шестнадцатиричное представление ACSII символов в обычную строку. Например строка: "65666768" должна быть преобразована в "ABCD".

    Как это правильно сделать?

    Спасибо.
  •  04-01-2007, 7:12 1729 у відповідь на 1722

    Re: Перевод HEX в ASCII

    Видимо, некорректно задан вопрос. To, что вы привели в качестве примера и "шестнадцатиричное представление ACSII символов в обычную строку" не имеет ничего общего. В данном примере вы просто преобразуете букву 'A' в ее ASCII код  - никакого  шестнадцатиричное представления тут нет. 

    Поясните пожалуйста, что есть входными данными и что надо получить?


    Thank you,
    Misha Zhutov
    http://submain.com - .NET Developer Tools
    Microsoft MVP
  •  04-01-2007, 7:30 1730 у відповідь на 1729

    Re: Перевод HEX в ASCII

    Да, вы правы, ошибка вышла, указал в десятичном формате.

    Исходные данные должны быть: "41424344".
    Результат: "ABCD".
  •  04-01-2007, 7:44 1731 у відповідь на 1730

    Re: Перевод HEX в ASCII

    Ну так возьмите и разбейте входную строку на массив, по два символа, каждый их них преобразуйте к целому числу и потом к букве. Очень интересно, откуда возникла такая задача?


    Thank you,
    Misha Zhutov
    http://submain.com - .NET Developer Tools
    Microsoft MVP
  •  04-01-2007, 7:52 1732 у відповідь на 1722

    Re: Перевод HEX в ASCII

    kolyan:
    Мне нужно перевести строку, содержащую шестнадцатиричное представление ACSII символов в обычную строку. Например строка: "65666768" должна быть преобразована в "ABCD".

    Как это правильно сделать?

    Спасибо.


    Во-первых тебе самому надо распарсить строку на отдельные представления символа ex. "65 66 67 68". Или что-то на твой вкус Big Smile.
    Во-вторых стандартных средств для преобразования такой строки нет (или я не знаю), предлагаю несколько вариантов:
    Каждый блок парсиш к байтовому массиву т.е.

    string hexNumber = "65 66 67 68";

    string[] nums = hexNumber.Split(' ');


    byte[] bytes = new byte[nums.Length];

    for(int i=0;i<nums.Length;i++)

    {

    bytes<img src="http://dev.net.ua/emoticons/emotion-55.gif" alt="Idea" /> = byte.Parse(nums<img src="http://dev.net.ua/emoticons/emotion-55.gif" alt="Idea" />);

    }

    char[] chars = Encoding.ASCII.GetChars(bytes);


    for(int i=0;i<nums.Length;i++)

    {

    Console.WriteLine(chars<img src="http://dev.net.ua/emoticons/emotion-55.gif" alt="Idea" />);

    }


    С уважением, Вячеслав
Переглядати як новосний Блог RSS в XML