#include <iostream>
#include <string.h>
#include <unistd.h>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
unsigned char mm[5] = { 0xff, 0xd8, 0xff, 0xe1, 0x95};
char str_data[1024] = {0};
for(int i = 0; i < 5;i++) {
sprintf(str_data + i * 2, "%02x", mm[i] & 0xFF);
}
printf("%s\n", str_data);
string str_ascii;
for(int i=0;i<5*2;i++) {
char hext[1024] = {0};
sprintf(hext, "%02x", str_data[i]);
str_ascii += hext;
}
cout<<str_ascii<<endl;
return 0;
}
运行结果:
十六进制转字符串的其他方法函数:
string strToHex(vector<unsigned char> img_encode)
{
stringstream ss;
const string hex = "0123456789ABCDEF";
for (string::size_type i = 0; i < img_encode.size(); ++i)
ss << hex[(unsigned char)img_encode[i] >> 4] << hex[(unsigned char)img_encode[i] & 0xf];
return ss.str();
}