System::String ^ для шестнадцатеричного представления, требуется помощь

#visual-c

#visual-c

Вопрос:

Мне нужно преобразовать тип String ^ в шестнадцатеричное строковое представление. Я пишу на MSVC ’05. Нужна помощь с алгоритмом, я уже пробовал функцию strtol, и она не выдает ожидаемый результат.

 String^ str = "993";
  

Я хочу, чтобы str был преобразован в шестнадцатеричный, который равен 0x03E1, как мне это сделать? Любая помощь или указания будут высоко оценены. Заранее спасибо.

Комментарии:

1. Int32(Int32::Parse(str)). toString(«x»)

Ответ №1:

Преобразование его в шестнадцатеричное находится в части отображения.

 String^ str = "993";
int value;
if(!Int32::TryParse(str,value))
{
    Console::WriteLine("Failed, exiting");
    return -1;
}
Console::WriteLine(value.ToString("X"));
  

Это указывает, что выходные данные должны быть шестнадцатеричными —— ^^^

Комментарии:

1. Привет, спасибо за быстрый ответ. Но я не собираюсь выводить через консоль, а вместо этого сохраняю его как переменную и передаю шестнадцатеричное представление в качестве аргумента любой функции, которая этого требует. Итак, я не могу зависеть от консоли ::WriteLine (), верно? Какой-либо альтернативный метод, который вы знаете? 😉 Заранее спасибо.

2. @user714826 Вы говорите о преобразовании строки в шестнадцатеричную строку? Представление целого числа в системе в двоичном формате, остальное — просто оформление витрины. Тогда все, что вам нужно для этого, передается в виде целого числа.

3. Прошу прощения, если я не ясно выразился, ага, от строки к шестнадцатеричной строке. 🙂

4. @user714826 Хорошо, в таком случае просто замените последнюю строку кода на String^ hextring = value.ToString("X"); . Затем передайте в шестнадцатеричную строку.