string、intタイプデータを16進数に変換
1.string文字列を16進文字列出力に変換
2.int型データを16進数文字配列に変換
string strToHex(string str) //string
{
const std::string hex = "0123456789ABCDEF";
std::stringstream ss;
for (std::string::size_type i = 0; i < str.size(); ++i)
ss << hex[(unsigned char)str[i] >> 4] << hex[(unsigned char)str[i] & 0xf] << "";
return ss.str();
}
2.int型データを16進数文字配列に変換
char* intToHex(int values)
{
int i = 0;
char *res = new char[100];
stack s;
if (values == 0)
s.push(values);
while (values) {
s.push(values % 16);
values /= 16;
}
while (!s.empty())
{
switch (s.top())
{
case 10:res[i] = 'A'; break;
case 11:res[i] = 'B'; break;
case 12:res[i] = 'C'; break;
case 13:res[i] = 'D'; break;
case 14:res[i] = 'E'; break;
case 15:res[i] = 'F'; break;
default:res[i] = s.top() + '0'; break;
}
i++;
s.pop();
}
res[i] = '\0';
/* if (i == 1) // 10 , 00 01 02 03
{
if (res[0] != '0') {
int temp = i;
res[i] = res[--temp];
res[temp] = '0';
res[++i] = '\0';
}
else {
res[0] = '0';
res[1] = '0';
res[2] = '\0';
}*/
}
return res;
}