在C ++中整数到十六进制字符串如何在C ++中将整数转换为十六进制字符串?我可以找到一些方法来实现它,但它们似乎主要针对C。似乎在C ++中没有本地方法。这是一个非常简单的问题; 我有一个int我想转换为十六进制字符串以便以后打印。
3 回答
三国纷争
TA贡献1804条经验 获得超7个赞
用<iomanip>
的 std::hex
。如果你打印,只需发送std::cout
,如果没有,然后使用std::stringstream
std::stringstream stream;stream << std::hex << your_int;std::string result( stream.str() );
你可以在前面加上第一<<
用<< "0x"
或任何你喜欢的,如果你想。
其他感兴趣的方式是std::oct
(八进制)和std::dec
(回到十进制)。
您可能遇到的一个问题是,这会产生表示它所需的确切数字位数。您可以使用setfill
与setw
该规避的问题:
stream << std::setfill ('0') << std::setw(sizeof(your_type)*2) << std::hex << your_int;
最后,我建议这样一个功能:
template< typename T >std::string int_to_hex( T i ){ std::stringstream stream; stream << "0x" << std::setfill ('0') << std::setw(sizeof(T)*2) << std::hex << i; return stream.str();}
潇潇雨雨
TA贡献1833条经验 获得超4个赞
使用std::stringstream
到整数转换成字符串和特殊操作者设置的基础。例如:
std::stringstream sstream;sstream << std::hex << my_integer;std::string result = sstream.str();
- 3 回答
- 0 关注
- 652 浏览
添加回答
举报
0/150
提交
取消