C ++ Маленький символ с шестнадцатеричной функцией?

Я пытаюсь найти очень легкий способ либо с помощью шестнадцатеричного символа, либо с md5 использовать два примера ниже.

char example[0x34];
char example_final[0x200];
sprintf(example, "%s", "4E964DCA5996E48827F62A4B7CCDF045");

Для примера использования двух функций PHP ниже.

MD5:

sprintf(example_final, "%s", md5(example));
output: 149999b5b26e1fdeeb059dbe0b36c3cb

HEX:

sprintf(example_final, "%s", bin2hex(example));
output: 3445393634444341353939364534383832374636324134423743434446303435

Какой самый легкий способ сделать это? Я думал о некотором большом массиве символов с шестнадцатеричным значением, чем создание цикла foreach char, но не уверен.

0

Решение

Пример bin2hex будет выглядеть так:

#include <string>
#include <iostream>std::string bin2hex(const std::string& input)
{
std::string res;
const char hex[] = "0123456789ABCDEF";
for(auto sc : input)
{
unsigned char c = static_cast<unsigned char>(sc);
res += hex[c >> 4];
res += hex[c & 0xf];
}

return res;
}int main()
{
std::string example = "A string";

std::cout << "bin2hex of " << example << " gives " << bin2hex(example) << std::endl;
}
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]