Как преобразовать символ или строку в гекс? - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу преобразовать строку в шестнадцатеричный в VC ++.Есть ли встроенная функция в vc ++ для этого.Я работаю над Visual Studio 2008. Точно так же, как VB имеет некоторые встроенные функции, в противном случае, если нет встроенных функций, любой код, которым может поделиться любой, приветствуется.

Ответы [ 4 ]

1 голос
/ 14 сентября 2011

Попробуйте это:

int i = 3735928559;
System::String^ str = System::String::Format("{0:X}", i);

Подробнее см. Документацию по string.Format.

1 голос
/ 14 сентября 2011

Редактировать:

Функции форматирования строк в .NET Framework позволяют задавать вывод шестнадцатеричного числа с помощью :X:

      System::String^ input = "I am a string!";
      System::Text::StringBuilder output;
      for each (System::Byte b in input)
      {
          output.AppendFormat("{0:X} ", b);
      }
      System::String^ hexString = output.ToString();
      Console::WriteLine(hexString);

Вывод:

49 20 61 6D 20 61 20 73 74 72 69 6E 67 21

Примечание : Это покажет необработанные двоичные байты в виде шестнадцатеричных чисел.Если вы хотите отобразить кодовые точки Unicode, вам придется иметь дело с классом System::Globalization::StringInfo.

0 голосов
/ 14 сентября 2011

Хорошо, если предположить, что это строка однобайтовых символов, каждый из них будет представлен двумя шестнадцатеричными символами (поскольку шестнадцатеричная цифра представлена ​​4 битами), поэтому получите биты младшего разряда и биты старшего разряда

low = byte & 0xF;
high = (byte & 0xF0) >> 4;

, который даст вам два числа от 0 до 15, затем определите, какую цифру 0-F он представляет.

0 голосов
/ 14 сентября 2011

втои и ltow

будет работать. Первый преобразует строку в int, а второй преобразует этот int в шестнадцатеричную строку.

Они работают для широких строк (2 байта на символ), есть версии atoi и ltoa, которые работают с однобайтовыми символьными строками.

см

http://msdn.microsoft.com/en-us/library/6y51bcy2(v=VS.90).aspx

http://msdn.microsoft.com/en-us/library/yd5xkb5c(v=VS.90).aspx

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