C ++ - 十六进制到字符串转换

时间:2016-11-18 17:53:26

标签: c++ number-formatting

我正在尝试在C ++中将十六进制转换为字符串。这有什么STL功能吗?

例如,

int myHex = 0xff00;
string result = someFunc(myHex);

The result should be "0xff00" exactly.

我现在能想到的一种方法是建立地图。

typedef map<int, string> hex_to_str_map;
hex_to_string_map myMap {
             {0x0,    "0"},
             {0x1,    "1"},
             ...........
             {0xf,    "16"},
        };

然后将十六进制数字逐位转换。

我尝试使用ostreamstream,但这会将十六进制转换为十进制

template <typename T>
string NumberToString (T that) {
    ostreamstream ss;
    ss << that;
    return ss.str()
}

我想要的是将转换后的字符串存储到矢量中,并在另一个函数中使用它。

0 个答案:

没有答案