Original function.
Code:
void Binary2HexString(const vector<unsigned char>& vec, string& result)
{
if(vec.size() == 0)
return;
for(size_t i = 0; i < vec.size(); i++)
{
char temp[4] = {0};
sprintf(temp, "%02X ", vec[i]);
result.push_back(temp[0]);
result.push_back(temp[1]);
result.push_back(temp[2]);
}
}
Fixed function.
Any good suggestion for this issue.
I really don't like my fix like this hard-code!
Code:
void Binary2HexString(const vector<unsigned char>& vec, string& result)
{
if(vec.size() == 0)
return;
for(size_t i = 0; i < vec.size(); i++)
{
char temp[4] = {0};
if (vec[i] < 10){
sprintf(temp, "%02X ", vec[i]);
}
// if the vec[i] value bigger than 10, we must take use Dec instead of Hex to handle.
else{
sprintf(temp, "%02d ", vec[i]);
}
result.push_back(temp[0]);
result.push_back(temp[1]);
result.push_back(temp[2]);
}
}