Может быть, эта функция выполнена в качестве упражнения, но почему бы не использовать клавишу формата %x
printf? он будет отображать целочисленное значение в шестнадцатеричном формате, тогда вы просто заранее используете 0n
, где n
- это количество символов, которое вы хотите отобразить, а 0
указывает, что оно дополняется нулями
EX:
std::string makehex(unsigned int value ) {
char chOut[10];
sprintf( chOut, "%08x", value );
return std::string(chOut);
}
Если вы вызовете это с целочисленным значением 14576
, он вернет строку «000038f0»