我有一个整数,想要以char []的形式得到这个整数的十六进制。
示例:
unsigned int i = 1234567890;
我希望获得以下char []:
char hex[] = "\x49\x96\x02\d2"; // hex of i;
我可以将十六进制作为字符串:
std::stringstream sstream;
sstream << std::hex << image_base_OEP;
auto result = sstream.str();
但这不是我需要的。
答案 0 :(得分:3)
由于您正在寻找以空白为终点的可打印和不可打印字符的字符串,因此HEX不会进入图片:字符串中的四个字符只是i
表示的四个字节,你可以得到如下:
char hex[] = {
(i >> 24) & 0xFF
, (i >> 16) & 0xFF
, (i >> 8) & 0xFF
, (i >> 0) & 0xFF
, 0 // Null terminator to match your C string
};
请注意,让i
和hex
无符号可能是个好主意。