Я пытаюсь преобразовать большую двоичную строку (размер 512) в шестнадцатеричное число.Я использую std::bitset
.Решения, которые я нашел в Интернете, на самом деле не работают для меня, потому что ullong
имеет ограничение 64. В настоящее время я делю строку на подстроки длиной 64 символа и затем преобразую их в шестнадцатеричные, но таким образом я иногда теряю некоторую информацию.Есть ли лучшее решение моей проблемы?
std::string string_to_hex(std::string bin) {
std::string res = "";
for (int i = 0; i < 512; i += 64) {
std::stringstream hex;
std::bitset<64> set(bin.substr(i, 64));
hex << std::hex << set.to_ulong();
res += hex.str();
}
return res;
}