Hex string to hex char []

时间:2017-04-19 15:48:23

标签: c++ string char hex

我有一个整数,想要以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();

但这不是我需要的。

1 个答案:

答案 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
};

请注意,让ihex无符号可能是个好主意。

Demo.